使用變數對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中文網其他相關文章!