首页 > 数据库 > mysql教程 > 为什么在 Python 和 MySQL 中使用准备好的语句时会出现'SQL 语法错误”?

为什么在 Python 和 MySQL 中使用准备好的语句时会出现'SQL 语法错误”?

DDD
发布: 2024-11-07 16:51:03
原创
878 人浏览过

Why Am I Getting a

在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板