Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

làm thế nào để ngăn chặn việc tiêm sql từ truy vấn này?

Khi trình giữ chỗ được trích dẫn, nó không phải là trình giữ chỗ, nó là giá trị theo nghĩa đen. Hãy thử theo cách này:

$a = Model::model()->findAllBySql(
                      'SELECT * FROM table WHERE name like :name',
                      array(":name"=> '%' . $_GET['name'] . '%')
                      );

Trình điều khiển hiện tự động thêm dấu hai chấm nhưng nó có thể không gắn trong tương lai, tốt nhất là nên để tên khớp với trình giữ chỗ.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cái nào tốt hơn:mysql_connect hoặc mysql_pconnect

  2. Phương pháp hay nhất cho hệ thống Đặt lịch / Đặt hẹn PHP / MySQL

  3. Quyền truy cập root MySQL từ tất cả các máy chủ

  4. Có phải đóng các kết nối SQL được mở bằng PDO trong PHP không

  5. Thực hiện một lúc / vòng lặp để nhận được 10 kết quả ngẫu nhiên