欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

MySQLdb._exceptions.ProgrammingError: (1064, <NULL>)

发布时间:2025/3/15 数据库 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 MySQLdb._exceptions.ProgrammingError: (1064, <NULL>) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

查了变天的问题 怀疑是 字符串格式的问题

当 使用 单引号时报
MySQLdb._exceptions.ProgrammingError: (1064, <NULL>)

sql3 = 'update mysite_yaoinfos set yaodian="{}" where id>=11133 and name = "{}"'.format(i["yaodian"], i["name"])

使用双引号 报 MySQLdb._exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax;

sql3 = "update mysite_yaoinfos set yaodian='{}' where id>=11133 and name = '{}'".format(i["yaodian"], i["name"])

报错的文本导入内容也不同
最后发现 导入的 yaodian 字符串 内 含有 “”,’’ 。

解决办法: MySQLdb.escape_string()

在MySQLdb模块中自带针对mysql的转义函数escape_string()
改为:

sql3 = 'update mysite_yaoinfos set yaodian="{}" where id>=11133 and name = "{}"'.format(MySQLdb.escape_string(i["yaodian"]).decode('utf-8'), i["name"])

参考: https://www.cnblogs.com/greencollar/p/13787542.html

总结

以上是生活随笔为你收集整理的MySQLdb._exceptions.ProgrammingError: (1064, <NULL>)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。