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中文网其他相关文章!