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)
)