2017-07-04 82 views
0

所以我基本上試圖做的是從pyqt開發出來的數據並將其插入到數據庫中,問題出在我的ID列上,這是我用來插入的代碼數據到數據庫:sqlite3.OperationalError python

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); 
+0

顯示'.schema'的輸出。 – DeepSpace

+0

我想你需要通過列名或否則這可能不起作用 – Exprator

+2

你的ID似乎不會自動遞增 – Exprator

回答

0

你需要傳遞列的列表:

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

跳過列表中的唯一方法是通過所有7列。

+0

當我用你的方法我得到這個錯誤:sqlite3.InterfaceError:錯誤綁定參數0 - 可能不支持的類型。 – deepmore

+0

這是一個完全不同的問題。什麼類型的文件名是? – phd

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))) 

這個工作對原來我應該解析到字符串我從形式我的文本框中得到的值。

相關問題