使用变量更正 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中文网其他相关文章!