绑定数量不正确
尝试使用以下代码将字符串插入 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中文网其他相关文章!