[英]Python DELETE mysql/mariadb with a python variable not working
[英]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.