sqlite3.OperationalError python

时间:2017-07-04 09:27:52

标签: python sqlite

所以我基本上要做的是从pyqt开发的数据中获取数据并将其插入数据库,问题出在我的ID列,这是我用来将数据插入到数据库:

connection.execute("INSERT INTO UTILISATEURS VALUES (?,?,?,?,?,?) ",(fullname,email,cin,address,phonenumber,ribnumber))

我总是收到这个错误:

sqlite3.OperationalError: table UTILISATEURS has 7 columns but 6 values were supplied

当我输入一个直接从sqlite cli插入表中的查询时,我得到了所需的结果而无需自动插入ID自动增量

这是.schema命令的输出:

sqlite> .schema
CREATE TABLE ADMINSS(USERNAME TEXT NOT NULL,PASSWORD TEXT);
CREATE TABLE UTILISATEURS(ID INTEGER PRIMARY KEY,FULLNAME TEXT NOT NULL,EMAIL INT NOT NULL,CIN INTEGER,ADDRESS CHAR(50),PHONE INTEGER,RIB INTEGER);

2 个答案:

答案 0 :(得分:0)

您需要传递列表列表:

connection.execute("INSERT INTO UTILISATEURS (FULLNAME, EMAIL, CIN, ADDRESS, PHONE, RIB) VALUES (?,?,?,?,?,?) ", (fullname, email, cin, address, phonenumber, ribnumber))

跳过列表的唯一方法是传递所有7列。

答案 1 :(得分:0)

好吧,我接受了之前的回答,但略有修改:

connection.execute("INSERT INTO UTILISATEURS (FULLNAME, EMAIL, CIN, ADDRESS, PHONE, RIB) VALUES (?,?,?,?,?,?) ", (str(fullname), str(email), str(cin), str(address), str(phonenumber), str(ribnumber)))

这适用于结果我应该解析为从表单中的文本框中获取的值字符串。