Bạn cần để thư viện MySQL thực hiện việc xử lý tham số cho bạn; điều này có thêm lợi ích là cho phép MySQL chuẩn bị câu lệnh của bạn, giúp cho việc chèn lặp lại cũng nhanh hơn:
cur = con.cursor()
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', ?, ?, ?, ?, ?, 0, P, 0"
cur.execute(sql_input, (export_date, export_time, export_numtests, export_upstream, export_downstream))
Xem thông số kỹ thuật Python DB API 2.0
để biết thêm (một số) chi tiết về SQL được tham số hóa. Các định dạng tham số được hỗ trợ chính xác được ghi lại trên mỗi bộ điều hợp cơ sở dữ liệu, vì vậy hãy kiểm tra điều đó. Ví dụ:mô-đun MySQLdb bắt chước cú pháp định dạng chuỗi python và sử dụng %s
dưới dạng trình giữ chỗ:
sql_input = "INSERT INTO 963168MBV17A(Rev, Part, SN, Iterations, Date, Time, Upstream, Downstream, ResultList, Result, Report) VALUES('503', '100-120970-0031', '1594539', %s, %s, %s, %s, %s, 0, P, 0"
Các tùy chọn tham số có thể có khác là số (:1, :2
, v.v.), tên (:foo, :bar
) hoặc dạng định dạng chuỗi python khác, mã định dạng được đặt tên:(%(foo)s, %(bar)s
).