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

Python MySQLdb lỗi - nguyên nhân gây ra điều này là gì

Mã của bạn để tạo truy vấn không cố gắng trích dẫn các giá trị chuỗi:

cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"

Xem câu lệnh SQL bạn đã in:

INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)

Không nên trích dẫn "danh mục"?

Bạn không nên soạn một câu lệnh SQL với các phép toán chuỗi ngay từ đầu. Đây là cách các lỗ hổng SQL injection xảy ra. Thay vào đó, bạn nên sử dụng trình giữ chỗ và để thư viện MySQL xử lý chúng:

c.execute(
    "INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)", 
    (key, value, timestamp)
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Đưa ra thời gian chờ tập lệnh đã qua khi nhập cơ sở dữ liệu

  2. Tải hình ảnh lên Máy chủ Từ xa, iPhone

  3. Thay vào đó, sơ đồ ER này có nên sử dụng mối quan hệ bậc ba không

  4. Truy xuất mục nhập gần đây nhất cho mỗi người dùng

  5. MySql Cách đặt biến cục bộ trong câu lệnh cập nhật (Cú pháp?)