MySQL python连接器更新错误:请检查要在%s附近使用的正确语法。出什么事了?

2024-10-03 04:39:07 发布

您现在位置:Python中文网/ 问答频道 /正文

这应该是相对快速和简单的:

当我在PythonIDE中运行它时

mycursor.executemany("UPDATE table42 SET date = %s ", [('2020-05-11')])

由于某种原因,它在字符串占位符(%s)处完全被绊倒。我之所以使用executemany,是因为很快字符串将被使用today.strftime('%Y-%m-%d')的变量替换,所以我需要它更灵活

错误如下: mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%s' at line 1

如果有人能帮我找出我做错了什么,我将不胜感激


Tags: theto字符串yourtodaydate错误update
1条回答
网友
1楼 · 发布于 2024-10-03 04:39:07

日期字符串后面需要有一个逗号,这样列表就是一个元组列表(创建元组的是逗号,而不是括号)

mycursor.executemany("UPDATE table42 SET date = %s ", [('2020-05-11',)])

这是因为DB API需要

be provided as sequence or mapping

(从技术上讲,字符串是一个序列,但在这里它的长度是错误的。mysql连接器拒绝使用字符串。无论如何,我认为,pymysql会在这个IIRC中接受一个字符串。但是,将参数设置为元组绝对是最可移植的编码方式)

相关问题 更多 >