簡體   English   中英

python to mysql (MariaDB) 插入查詢變量錯誤

[英]python to mysql (MariaDB) insert query with variable error

我正在嘗試使用插入查詢使用 Python(3.6) 寫入 MariaDB 數據庫。

我能夠成功連接到數據庫,但使用變量插入查詢似乎不起作用。 但是,當我在沒有變量的情況下直接在 .execute() 中使用插入查詢時,它似乎有效。

script = "insert INTO Table1 (Column1) VALUES (%s)"
val=("911")
mycursor.execute(script,val)

對於上述代碼,我收到以下編程錯誤:

ProgrammingError: 你的 SQL 語法有錯誤; 檢查與您的 MariaDB 服務器版本相對應的手冊,以獲取在第 1 行的“%s)”附近使用的正確語法

任何指向正確方向的指針將不勝感激。

您需要將paramstyle設置為'format'或者您必須使用另一個 paramstyle。 在 MySQL 連接器/Python 中,例如默認 paramstyle 是'pyformat'而不是'format'

那就是問題所在

>>> val=("911")
>>> type(val)
<class 'str'>
>>> val
'911'

在 Python3 中,多余的括號將被刪除,因此它會將其解釋為字符串而不是元組,這在使用%s時是必需%s 您需要使用val=('911",)強制 val 為元組類型

>>> val=("911",)
>>> type(val)
<class 'tuple'>
>>> val
('911',)
script = "insert INTO Table1 (Column1) VALUES ('%s')"
val=("911")
mycursor.execute(script,val)

試試這個,我曾經在 sqlite3 上遇到過類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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