sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用6,提供了5个
我真的不明白我做错了什么。我的桌子是:sqlite3.ProgrammingError:提供的绑定数量不正确。当前语句使用6,提供了5个,sqlite,Sqlite,我真的不明白我做错了什么。我的桌子是: conn.execute('''CREATE TABLE USERS (EMAIL TEXT NOT NULL, PASSWORD TEXT NOT NULL, FIRST_NAME TEXT NOT NULL, LAST_NAME TEXT NOT NULL, DATE TEX
conn.execute('''CREATE TABLE USERS
(EMAIL TEXT NOT NULL,
PASSWORD TEXT NOT NULL,
FIRST_NAME TEXT NOT NULL,
LAST_NAME TEXT NOT NULL,
DATE TEXT NOT NULL,
SEX TEXT NOT NULL);''')
当我试图插入到表中时:
conn.executemany("INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?)", [email, password, first_name, last_name, date, sex])
我得到这个错误:
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 6, and there are 5 supplied.
如果我添加一个问题,错误相同,但现在:
sqlite3.OperationalError: table USERS has 6 columns but 7 values were supplied
如果仅添加逗号而不添加问号,则错误不同:
sqlite3.OperationalError: near ")": syntax error
变量值为:
email=str(myapp.register_email.text())
print email
first_name=str(myapp.first_name.text())
print first_name
last_name=str(myapp.last_name.text())
print last_name
date=str(myapp.date.text())
print date
password="nht"
print password
sex=str(myapp.sex.currentText())
print sex
我在这里真是疯了。正如所建议的那样,executemany()
方法需要一个值元组。因此,我建议您使用以下代码插入新条目:
conn.executemany("INSERT INTO USERS VALUES (?, ?, ?, ?, ?, ?)", [(email, password, first_name, last_name, date, sex)]
请告诉我们您试图插入的变量的内容好吗?我更新了它。我使用pyqt如果有帮助,我会打印这些值以查看它们是否有效。结果是什么:
len([电子邮件、密码、名字、姓氏、日期、性别])
?结果是什么意思?我不明白。我想看看插入查询列表的长度,是5还是6?谢谢!成功了!不客气;)感谢python文档!