首页 > 解决方案 > 尝试将列表导入 mysql 表时出错

问题描述

每当我尝试将列表添加到 mysql 表中时,我都会收到错误消息:“ProgrammingError:并非所有参数都在 SQL 语句中使用”

我试图在网上查找,但我能找到的只是我需要使用 %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)

谢谢你!

标签: pythonmysqlpython-3.xmysql-python

解决方案


to 的第二个参数executemany必须是一系列序列或映射,即

listname=[('name1',), ('name2',), ('name3',), ('name4',)]

请参阅https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html

此方法准备一个数据库operation(查询或命令)并针对所有参数序列或在序列中找到的映射执行它seq_of_params


推荐阅读