这应该相对简单快捷:
当我在python IDE中运行此命令时
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
如果有人可以帮助我弄清楚我在做什么错,将不胜感激。
日期字符串后必须有一个逗号,以便该列表是元组的列表(创建元组的逗号,而不是括号)。
mycursor.executemany("UPDATE table42 SET date = %s ", [('2020-05-11',)])
这是因为DB API需要该参数
作为序列或映射提供
(从技术上讲,字符串是一个序列,但是在这里它的长度是错误的。无论如何我认为mysql-connector都会拒绝一个字符串,pymysql会在此IIRC中接受一个字符串。但是将参数设置为元组绝对是最重要的可移植的方式对此进行编码)