Python中执行 MySQL插入语句报错   :1064, "You have an error in your SQL syntax;

 

(1064, "You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'Darabont,弗兰克·德拉邦特,http://img3.doubanio.com/view/celebrity/s_ratio' at line 1")

SQL语句语法有问题了~

1、有一个方法能帮助我们更快的发现问题,就是输出自己的SQL语句:

输出Python中的MySQL插入语句:

insert_sql = "INSERT INTO db_writers (writer_id, writer_name_en, writer_name, writer_avatars, writer_alt) VALUES ({},{},{},{},{});".format(writer_id, writer_name_en, writer_name, writer_avatars, writer_alt)
print(insert_sql)

运行输出的SQL结果:

INSERT INTO db_writers ( writer_id, writer_name_en, writer_name, writer_avatars, writer_alt )
VALUES
    (
        1047973,
        Frank Darabont,弗兰克·德拉邦特,
    http :// img3.doubanio.com / VIEW / celebrity / s_ratio_celebrity / public / p230.jpg,
    https :// movie.douban.com / celebrity / 1047973 /);

除了writer_id是int类型,其他字段都是varchar类型的,一看问题就明了了,varchar类型的是要用双引号括起来的,是因为我的SQL语句在使用{}的时候,在除了writer_id对应的{}外忘记用 ' ' 包起来了,本来应该用'{}'的。

"INSERT INTO db_writers (writer_id, writer_name_en, writer_name, writer_avatars, writer_alt) VALUES ('{}','{}','{}','{}','{}');".format(writer_id, writer_name_en, writer_name, writer_avatars, writer_alt)
                

这样便不会报错了

同时有时候在字符串内容中有 ' 比如:' Alia s '也会导致报错,这时候如果还要插入到数据库的话需要转义:

比如:

original_title = res['original_title'].replace("\'", "\\\'")

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用:错误代码:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Continue at line 1。用:you have an error in your sql syntax; check the manual that corresponds to y。引用:Query : select * from order LIMIT 0, 1000 Error Code : 1064 You have an error in your SQLsyntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order LIMIT 0, 1000' at line 1。 这些引用内容显示了SQL语法错误和错误代码。当你在使用MySQL服务器时,如果你的SQL语句的语法不正确,就会显示这样的错误消息,指出在SQL语句的哪一行出现了错误。 要解决这个问题,你应该仔细检查你的SQL语句,并确保它们符合MySQL服务器的语法规定。你可以参考MySQL服务器的官方文档,在其找到正确的语法和用法。另外,你还可以通过查看错误消息指定的行号,找到具体出错的位置,然后进行修正。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [You have an error in your SQL syntax... check the manual that corresponds to your MySQL server version](https://blog.csdn.net/Continue_Python/article/details/124320879)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Mysql运行sql文件错误You have an error in your SQL syntaxcheck the manual that corresponds to y](https://blog.csdn.net/yetaodiao/article/details/126562096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒笑翻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值