2017-04-15 107 views
0

錯誤:sqlite3.OperationalError:表zarada有13列,但被供給14個值的Python sqlite3.OperationalError

backend1.py:

import sqlite3 

def konekcija(): 
    conn=sqlite3.connect("zarada.db") 
    cur=conn.cursor() 
    cur.execute("CREATE TABLE IF NOT EXISTS zarada (id INTEGER PRIMARY KEY, ime TEXT, prezime TEXT, JMBG TEXT, neto DECIMAL, bruto DECIMAL, pioZaposleni DECIMAL, pioPoslodavac DECIMAL, zdravstvoZaposleni DECIMAL, zdravstvoPoslodavac DECIMAL, nezaposlenostZaposleni DECIMAL, nezposlensotPoslodavac DECIMAL, porez DECIMAL ukupno DECIMAL)") 
    conn.commit() 
    conn.close() 

def unesi(ime, prezime, jmbg, neto, bruto, pioZaposleni, pioPoslodavac, zdravstvoZaposleni, zdravstvoPoslodavac, nezaposlenostZaposleni, nezposlensotPoslodavac, porez, ukupno): 
    conn=sqlite3.connect("zarada.db") 
    cur=conn.cursor() 
    cur.execute("INSERT INTO zarada VALUES(NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", (ime, prezime, jmbg, neto, bruto, pioZaposleni, pioPoslodavac, zdravstvoZaposleni, zdravstvoPoslodavac, nezaposlenostZaposleni, nezposlensotPoslodavac, porez, ukupno)) 
    conn.commit() 
    conn.close() 

konekcija() 

frontend.py:

def unesiKomanda(): 
    backend1.unesi(imeVar, prezimeVar, jmbgVar,neto, bruto, pioIznos1, pioIznos2, zdravstvoIznos1, zdravstvoIznos2, nezaposlenostIznos1, nezaposlenostIznos2, porezIznos, bruto2iznos) 

時我用print函數取代backend1.unesi,得到如下結果:

Name LastName idnumber 50000.0 69757.48930099858 9766.048502139802 8370.89871611983 3487.8744650499293 3487.8744650499293 488.3024251069901 488.302425106 
9901 5875.748930099859 81965.04992867332 

有13個值,我錯過了一些東西。

+0

我刪除代碼片段,無關與HTML或JavaScript他們。 –

回答

0

您在這裏缺少逗號:

porez DECIMAL ukupno DECIMAL 

本質上要創建13列,然後試圖用14個參數來填充。您的主鍵ID列也計數。

您的查詢應該是這樣的:

cur.execute("CREATE TABLE IF NOT EXISTS zarada (id INTEGER PRIMARY KEY, ime TEXT, prezime TEXT, JMBG TEXT, neto DECIMAL, bruto DECIMAL, pioZaposleni DECIMAL, pioPoslodavac DECIMAL, zdravstvoZaposleni DECIMAL, zdravstvoPoslodavac DECIMAL, nezaposlenostZaposleni DECIMAL, nezposlensotPoslodavac DECIMAL, porez DECIMAL, ukupno DECIMAL)") 
相關問題