為什麼我的帶有變數的 Python MYSQL UPDATE 語句失敗?

Susan Sarandon
發布: 2024-11-08 17:01:02
原創
883 人瀏覽過

Why Is My Python MYSQL UPDATE Statement with Variables Failing?

使用變數對Python MYSQL UPDATE 語句進行故障排除

在Python 中使用變數編寫時,確保其正確性至關重要。遇到的一個常見錯誤如下:

cursor.execute ("UPDATE tblTableName SET Year=%s" % Year ", Month=%s" % Month ", Day=%s" % Day ", Hour=%s" % Hour ", Minute=%s" Minute "WHERE Server=%s " % ServerID)   
登入後複製

哪裡出錯了?

問題在於變數插入語句的方式。這個程式碼片段沒有使用正確的方法,而是簡單地將字串與變數連接起來,這是 MYSQL 不支援的。

正確的方法

要修復錯誤,您需要使用參數化查詢,其中變數由佔位符表示並作為單獨的參數傳遞。正確的方法如下:

cursor.execute ("""
   UPDATE tblTableName
   SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s
   WHERE Server=%s
""", (Year, Month, Day, Hour, Minute, ServerID))
登入後複製

替代方法

或者,您可以使用基本的字串操作,但由於SQL 注入漏洞,不鼓勵這樣做:

cursor.execute ("UPDATE tblTableName SET Year=%s, Month=%s, Day=%s, Hour=%s, Minute=%s WHERE Server='%s' " % (Year, Month, Day, Hour, Minute, ServerID))
登入後複製

額外注意

請記住,不同的資料庫後端可能有不同的字串替換約定。例如,SQLite 在更新查詢中對字串值使用單引號。

以上是為什麼我的帶有變數的 Python MYSQL UPDATE 語句失敗?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板