簡體   English   中英

Python MySQL 參數查詢編程錯誤:1064 (42000)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM