错误:1210:执行prepared statemens的参数数目不正确

2024-05-23 19:56:39 发布

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

我尝试使用Python将数据插入MySQL。在

这个错误的原因是什么?在

ProgrammingError: 1210: Incorrect number of arguments executing prepared statement

我的python代码:

connection = mysql.connector.connect(host='localhost',
                         database='popsww2017',
                         user='root',
                         password='')
records_to_insert = [('---2q7vcZGU', 'Partner-provided', '35', '9s1Pvm0U8Gg8mRavZhVXdg', 'A663893851990558', '1066/2016/HDHT-Pops-Kha Ly', '1467', '0.100598')]
sql_insert_query = "INSERT INTO raw_music (`Video_ID`, `Content_Type`, `Video_Duration`, `Channel_ID`, `Asset_ID`, `Asset_Labels`, `Owned_Views`, `Partner_Revenue`) VALUES ( '%s', '%s' , '%s' , '%s', '%s' , '%s' , '%s' , '%s') "
cursor = connection.cursor(prepared=True)
result  = cursor.executemany(sql_insert_query,records_to_insert)
connection.commit()

我的桌子:

^{pr2}$

Tags: to数据idsqlpartnervideo错误mysql
3条回答

使它工作的秘密是在单值元组的末尾添加一个逗号。在

示例:

# a tuple
to_insert = ('A value to insert'**,**)

在这种情况下:

^{pr2}$

它适用于单值元组。在

我希望这有帮助!在

您忘记传递executemany method parameters

result  = cursor.executemany(sql_insert_query,records_to_insert)

MySQLCursor.executemany() Method Syntax:

cursor.executemany(operation, seq_of_params)

This method prepares a database operation (query or command) and executes it against all parameter sequences or mappings found in the sequence seq_of_params.

另外,您的语法错误(删除引号),请使用以下内容:

^{pr2}$

{1>需要在cd1>函数中插入多行。第二个参数应该是一个包含要插入到这些不同行中的值的列表。因此,要么将代码修改为以下内容: (请注意,我已经将[]添加到records_to_insert中,使其成为一个列表)

records_to_insert = [(' -2q7vcZGU', 'Partner-provided', 35, '9s1Pvm0U8Gg8mRavZhVXdg', 'A663893851990558', '1066/2016/HDHT-Pops-Kha Ly', 1467, 0.100598)]
sql_insert_query = "INSERT INTO raw_music (`Video_ID`, `Content_Type`, `Video_Duration`, `Channel_ID`, `Asset_ID`, `Asset_Labels`, `Owned_Views`, `Partner_Revenue`) VALUES ( '%s', '%s' , %d , '%s', '%s' , '%s' , %d , %f) "
cursor = connection.cursor(prepared=True)
result  = cursor.executemany(sql_insert_query, records_to_insert)
connection.commit()

相关问题 更多 >