使用变量对 Python MYSQL UPDATE 语句进行故障排除
在 Python 中使用变量编写 MYSQL UPDATE 语句时,确保其正确性至关重要。遇到的一个常见错误如下:
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中文网其他相关文章!