【发布时间】:2018-11-07 07:26:20
【问题描述】:
我正在尝试使用 Python 将数据插入 MySQL。
这个错误的原因是什么?
ProgrammingError: 1210: 执行的参数数量不正确 准备好的语句
我的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()
我的桌子:
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
【问题讨论】:
-
当回答指出问题中的错误时,习惯上不要修复问题中的错误。 否则以后的查看者(例如我; -)。我看到三个错误 (1) records_to_insert 需要是一个列表,(2) 它需要传递给 executemany(),(3) 删除 %s 符号周围的引号。是这样吗?
标签: python mysql database-connection