[英]Python MySQL Parameter Query Programming Error: 1064 (42000)
我想使用 python 程序查詢 MySQL 表,但出現此錯誤:
ProgrammingError: 1064 (42000): 你的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本相對應的手冊,了解在第 1 行的“10”OFFSET“0”附近使用的正確語法
令人困惑的是,當我不使用變量時,查詢運行完美,如下所示:
cur = connection.cursor()
query = "SELECT * FROM DB.Table LIMIT 10 OFFSET 0"
cur.execute(query)
records = cur.fetchall()
for record in records:
print(record)
但是我需要逐批選擇數據,並且必須在 for 循環中執行上述命令。 我需要定義變量。 但是我得到了錯誤 1064。這是有錯誤的代碼:
i = 0
p = str(i)
j = 10
q = str(j)
cur = connection.cursor()
query = "SELECT * FROM DB.Table LIMIT %s OFFSET %s"
cur.execute(query,(q,p,))
records = cur.fetchall()
for record in records:
print(record)
我感謝您的幫助。
您可以使用cur.execute(query % (q,p))
或
query = "SELECT * FROM DB.Table LIMIT {} OFFSET {}"
cur.execute(query.format(q, p))
簡單地說,不要將參數化值轉換為字符串,因為錯誤顯示單引號:
i = 0
j = 10
cur = connection.cursor()
query = "SELECT * FROM DB.Table LIMIT %s OFFSET %s"
cur.execute(query, (j, i))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.