首頁 >資料庫 >mysql教程 >為什麼我的帶有變數的 Python MYSQL UPDATE 語句失敗?

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

Susan Sarandon
Susan Sarandon原創
2024-11-08 17:01:02961瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn