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

Truy vấn tham số MySQL

Hãy cẩn thận với việc sử dụng nội suy chuỗi cho các truy vấn SQL, vì nó sẽ không thoát khỏi các tham số đầu vào một cách chính xác và sẽ khiến ứng dụng của bạn mở ra các lỗ hổng SQL injection. Sự khác biệt có vẻ nhỏ, nhưng thực tế là rất lớn .

Không chính xác (có vấn đề bảo mật)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s" % (param1, param2))

Đúng (có thoát)

c.execute("SELECT * FROM foo WHERE bar = %s AND baz = %s", (param1, param2))

Nó làm tăng thêm sự nhầm lẫn rằng các công cụ sửa đổi được sử dụng để liên kết các tham số trong một câu lệnh SQL khác nhau giữa các triển khai DB API khác nhau và thư viện máy khách mysql sử dụng printf cú pháp kiểu thay vì '?' thường được chấp nhận hơn điểm đánh dấu (được sử dụng bởi ví dụ:python-sqlite ).



  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ách cập nhật nhiều cột trong MySQL

  2. 15 Mẹo Tối ưu hóa và Điều chỉnh Hiệu suất MySQL / MariaDB hữu ích

  3. MySQL:chọn các hàng trong đó một cột rỗng

  4. Làm cách nào để tối ưu hóa hàm ORDER BY RAND () của MySQL?

  5. Giải pháp tốt nhất để tổng hợp kết nối cơ sở dữ liệu trong python là gì?