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