每当我尝试向mysql表中添加列表时,都会出现错误:“ ProgrammingError:SQL语句中未使用所有参数”
ive试图在线查看,但我能发现的是,我需要使用%s来解决此问题,而不是其他任何类型的占位符,但是我确实可以。
我的代码(只是提到我在列表中有20个名字,但我认为这并不重要):
mydb=mysql.connector.connect(host='localhost',user=d,passwd=z,database=y)
listname=['name1','name2','name3','name4']
mycursor=mydb.cursor()
mysqlcommand='INSERT INTO tabletest (firstname) values (%s)'
mycursor.executemany(mysqlcommand,listname)
谢谢!
答案 0 :(得分:0)
executemany
的第二个参数必须是序列或映射的序列,即
listname=[('name1',), ('name2',), ('name3',), ('name4',)]
请参见https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html:
此方法准备数据库
operation
(查询或命令),并针对序列seq_of_params
中找到的所有参数序列或映射执行数据库。