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
,:2
v.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.)