Bạn cần chuyển câu lệnh SQL và các tham số dưới dạng các đối số riêng biệt:
cursor.execute(loggit[0], loggit[1])
hoặc sử dụng cú pháp đối số biến (một biểu tượng, *
)
:
cursor.execute(*loggit)
Phiên bản của bạn cố gắng chuyển vào một bộ chứa câu lệnh SQL và tham số liên kết làm đối số duy nhất, trong đó .execute()
hàm mong đợi chỉ tìm thấy chuỗi câu lệnh SQL.
Thông thường hơn là giữ hai phần riêng biệt và có lẽ chỉ lưu trữ câu lệnh SQL trong một biến:
loggit = """
INSERT INTO logger (logged_info, dummy)
VALUES
(%s, %s)
"""
cursor.execute(loggit, (bob, dummyVar))