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

Tại sao việc sử dụng câu lệnh được soạn sẵn bằng mysql lại an toàn hơn so với việc sử dụng các hàm thoát thông thường?

Một điểm quan trọng mà tôi nghĩ mọi người ở đây còn thiếu là với một cơ sở dữ liệu hỗ trợ các truy vấn tham số hóa, không có gì phải lo lắng về 'lối thoát'. Công cụ cơ sở dữ liệu không kết hợp các biến bị ràng buộc vào câu lệnh SQL và sau đó phân tích cú pháp toàn bộ; Các biến liên kết được giữ riêng biệt và không bao giờ được phân tích cú pháp như một câu lệnh SQL chung.

Đó là nơi bắt nguồn của tính bảo mật và tốc độ. Công cụ cơ sở dữ liệu biết trình giữ chỗ chỉ chứa dữ liệu, vì vậy nó không bao giờ được phân tích cú pháp như một câu lệnh SQL đầy đủ. Việc tăng tốc diễn ra khi bạn chuẩn bị một câu lệnh một lần và sau đó thực thi nó nhiều lần; ví dụ chính tắc đang chèn nhiều bản ghi vào cùng một bảng. Trong trường hợp này, công cụ cơ sở dữ liệu chỉ cần phân tích cú pháp, tối ưu hóa, v.v. một lần.

Bây giờ, một gotcha là với các thư viện trừu tượng hóa cơ sở dữ liệu. Đôi khi chúng giả mạo nó bằng cách chỉ chèn các biến bị ràng buộc vào câu lệnh SQL với lối thoát thích hợp. Tuy nhiên, điều đó vẫn tốt hơn là tự mình làm.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc khóa ngoại Bogus không thành công

  2. Làm cách nào để tạo một trình tạo hàng trong MySQL?

  3. Cách cải thiện hiệu suất AWS của MySQL gấp 2 lần trên Amazon RDS với cùng chi phí

  4. Có bất lợi nào khi sử dụng varchar chung (255) cho tất cả các trường dựa trên văn bản không?

  5. MySQL:Cách cho phép kết nối từ xa với mysql