首页 > 后端开发 > Python教程 > 为什么SQLite3在插入数据时会抛出'绑定值计数不匹配”错误?

为什么SQLite3在插入数据时会抛出'绑定值计数不匹配”错误?

Linda Hamilton
发布: 2024-11-29 01:15:13
原创
213 人浏览过

Why Does SQLite3 Throw a

SQLite3 错误:绑定值计数不匹配

使用cursor.execute() 方法将值插入到 SQLite3 数据库时,至关重要的是确保提供的绑定值的数量与 SQL 语句参数中指定的数量相匹配。否则,您可能会遇到类似于“提供的绑定数量不正确”的错误。

请考虑以下代码片段:

def 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 的字符串时,此代码抛出上述错误。原因是cursor.execute()方法需要一系列绑定值,而(img)只是一个表达式。

要解决这个问题,我们需要将(img)转换为元组或列表通过添加逗号。这是更正后的代码:

def 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,))  # Add a comma
            cnt+= 1
    connection.commit()
    connection.close()
登录后复制

或者,我们可以使用列表文字:

cursor.execute('INSERT INTO images VALUES(?)', [img])
登录后复制

以上是为什么SQLite3在插入数据时会抛出'绑定值计数不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板