为了账号安全,请及时绑定邮箱和手机立即绑定

sqlite3.ProgrammingError:提供的绑定数不正确。当前语句使用1

sqlite3.ProgrammingError:提供的绑定数不正确。当前语句使用1

慕的地8271018 2019-07-04 16:12:29
sqlite3.ProgrammingError:提供的绑定数不正确。当前语句使用1def insert(array):     connection=sqlite3.connect('images.db')     cursor=connection.cursor()     cnt=0     while cnt != len(array):             img = array[cnt]             print(array[cnt])             cursor.execute('INSERT INTO images VALUES(?)', (img))             cnt+= 1     connection.commit()     connection.close()我不知道为什么会出现错误,我试图插入的实际字符串有74个字符长,它是:“/gifs/epic-fail-photos-there-i-fixed-it-aww-man-the-tire-pressures-low.gif”在插入之前,我尝试过str(Array[cnt]),但是同样的问题正在发生,数据库只有一个列,这是一个文本值。我已经干了好几个小时了,我搞不懂到底是怎么回事。
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您需要传递一个序列,但是您忘记了用逗号将参数设置为元组:

cursor.execute('INSERT INTO images VALUES(?)', (img,))

没有逗号,(img)只是一个分组表达式,而不是元组,因此img字符串被视为输入序列。如果该字符串的长度为74个字符,那么Python将其视为74个单独的绑定值,每个值都有一个字符长。

>>> len(img)74>>> len((img,))1

如果发现更容易阅读,还可以使用列表文字:

cursor.execute('INSERT INTO images VALUES(?)', [img])


查看完整回答
反对 回复 2019-07-04
  • 2 回答
  • 0 关注
  • 1138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信