首頁  >  文章  >  資料庫  >  為什麼我的 Python MySQL 更新語句失敗,該如何修復?

為什麼我的 Python MySQL 更新語句失敗,該如何修復?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-08 13:26:02742瀏覽

Why is My Python MySQL Update Statement Failing, and How Can I Fix It?

使用變數修正 Python MySQL 更新語句

在嘗試使用 Python 更新語句更新 MySQL 記錄時,使用者可能會遇到錯誤。要解決這個問題,驗證語法並確保其正確應用至關重要。

錯誤的陳述:

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

分析:

由於字串連接不正確以及「Minute」變數缺少佔位符,錯誤的語句失敗。寫此語句的正確方法是:

正確語句:

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

替代語法:

替代語法:
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 注入攻擊。建議的方法是使用佔位符,如正確的語句所示。

資料庫相容性:此外,某些資料庫後端可能有不同的字串替換約定。例如,SQLite 使用“?”而不是佔位符的“%s”。

以上是為什麼我的 Python MySQL 更新語句失敗,該如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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