我在flask / python中创建了一个小项目,其中我只有一个DATABASE,它有一个表和一列init。 但我的DATABASE给出了错误 每当我通过在cmd中触发'''python dbase.py'''来检查我的数据库时。 它给出了一个ERROR,表示......
“”文件“dbase.py”,第19行,in cur.execute(“INSERT INTO tdaba(输入)VALUES(?)”,daba) sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用1,并且提供了3个。“”“
我将使用此数据库将TEXT在线输入到“输入”列中,为此我需要INSERT查询。
我的DATABASE名称是“daba”,它存储在名为“dbase.py”的文件中 它的代码是::
import sqlite3 as lite
import sys
daba = (
('1st mssg'),
('my 2nd mssg'),
('3rd msg, How r U ?')
)
con = lite.connect('daba.db')
with con:
cur = con.cursor()
cur.execute("DROP TABLE IF EXISTS tdaba")
cur.execute("CREATE TABLE tdaba(input TEXT)")
cur.execute("INSERT INTO tdaba (input) VALUES (?)", daba)
答案 0 :(得分:0)
第一个问题是“daba”。它是字符串的元组而不是元组的元组
In [1]: daba = (
....: ('1st mssg'),
....: ('my 2nd mssg'),
....: ('3rd msg, How r U ?')
....: )
In [2]: daba
Out[2]: ('1st mssg', 'my 2nd mssg', '3rd msg, How r U ?')
修复 - 在每个字符串后添加逗号(元组需要一个元素)。
daba = (
('1st mssg',),
('my 2nd mssg',),
('3rd msg, How r U ?',)
)
第二个问题 - 执行方法。你应该使用executemany。查看samples。
cur.executemany("INSERT INTO tdaba (input) VALUES (?)", daba)