在 Python 中使用 MySQL 的预准备语句:澄清语法并避免错误
您在使用 MySQL 的预准备语句时遇到错误Python,显示消息“'您的 SQL 语法有错误'”。让我们检查您提供的代码并确定问题。
您用于准备语句的代码看起来正确,但语句的后续执行包含错误。具体来说,循环中的代码似乎使用的参数与准备好的语句预期的语法不同。
sql = "EXECUTE stmt USING \'{}\', \'{}\', {}, {};".format(d, t, tag, power)
在答案提供的示例中,建议使用 Python 的 MySQLdb 模块的更有效方法:
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table)) self.cursor.execute(sql, (d, t, tag, power))
这里,值的占位符(%s)直接在 SQL 查询字符串中指定,实际值在执行中作为元组传递 称呼。这消除了在执行阶段进行字符串格式化的需要,这可能会导致代码中的语法错误。
或者,您可以使用 MySQL 自己的 Connector/Python 并在cursor()中使用prepare=True选项工厂,比使用 PREPARE 和 EXECUTE 语句更高效、更明确。
以上是为什么在 Python 和 MySQL 中使用准备好的语句时会出现'SQL 语法错误”?的详细内容。更多信息请关注PHP中文网其他相关文章!