首页 >后端开发 >Python教程 >为什么我的 SQLite INSERT 语句因长字符串的'绑定数量不正确”而失败?

为什么我的 SQLite INSERT 语句因长字符串的'绑定数量不正确”而失败?

Linda Hamilton
Linda Hamilton原创
2024-11-30 10:23:15822浏览

Why Does My SQLite INSERT Statement Fail with

绑定数量不正确

尝试使用以下代码将字符串插入 SQLite 数据库时,会发生错误,指示数量不正确绑定数量:

def insert(array):
    connection=sqlite3.connect('images.db')
    cursor=connection.cursor()
    cnt=0
    while cnt != len(array):
            img = array[cnt]
            cursor.execute('INSERT INTO images VALUES(?)', (img))
            cnt+= 1
    connection.commit()
    connection.close()

插入的字符串为74个字符时出现错误信息long.

问题的根源

代码尝试将一系列项目作为绑定值传递给execute() 方法。但是,绑定值参数需要一个元组,并且代码忽略提供创建元组所需的逗号。

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

修复

解决问题,在绑定值参数末尾添加一个逗号以创建一个元组:

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

或者,您可以使用列表文字,它也被识别为有效序列:

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

通过任一更正,代码将正确插入图像路径进入数据库,而不会触发有关绑定数量不正确的错误消息。

以上是为什么我的 SQLite INSERT 语句因长字符串的'绑定数量不正确”而失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn