我正在尝试使用python将数据插入mysql。
这个错误的原因是什么?
编程错误:1210:执行prepared语句的参数数目不正确
我的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()
我的table:
Video_ID varchar(50) utf8_unicode_ci
Content_Type varchar(100) utf16_unicode_ci
Video_Duration int(11)
Channel_ID varchar(100) utf8_unicode_ci
Asset_ID varchar(50) utf32_unicode_ci
Asset_Labels varchar(400) utf32_unicode_ci
Owned_Views int(20)
Partner_Revenue float
3条答案
按热度按时间jaql4c8m1#
executemany
函数在需要在数据库中插入许多行时使用。第二个参数应该是一个列表,其中包含要插入到这些不同行中的值。因此,要么将代码修改为以下内容:(注意,我添加了方括号[]
至records_to_insert
,将其列为列表)qnyhuwrf2#
您忘记传递executemany方法参数:
mysqlcursor.executemany()方法语法:
此方法准备一个数据库操作(查询或命令),并针对在参数的seq\中找到的所有参数序列或Map执行它。
此外,如果语法错误(删除引号),请改用以下命令:
ncgqoxb03#
使它工作的秘密是在单值元组的末尾加一个逗号。
例子:
在这种情况下:
它适用于单值元组。
希望有帮助!