Theo Đặc tả cơ sở dữ liệu Python trong PEP 249
, định dạng được sử dụng trong truy vấn để hiển thị nơi chèn các tham số phụ thuộc vào paramstyle thành viên của mô-đun cơ sở dữ liệu:
- nếu nó là
qmark, sử dụng?(dấu chấm hỏi) - nếu nó là
numeric, sử dụng:1,:2v.v. (kiểu số, kiểu vị trí) - nếu nó là
named, sử dụng:name(phong cách được đặt tên) - nếu nó là
format, sử dụng%s(Mã định dạng printf ANSI C) - nếu nó là
pyformat, sử dụng%(name)s(Mã định dạng mở rộng Python)
AFAIR, MySQLdb sử dụng định dạng format , vì vậy bạn nên thay thế ? của mình với %s . (Nếu MySQLdb sử dụng đúng các câu lệnh đã chuẩn bị, nó sẽ là qmark và ? là con đường đúng đắn để đi.)