2014-01-20 20 views
0

我使用sqlite3的將值存儲到數據庫中,我的問題是我已經創建lineedits,通過它我提取值,並將其存儲到變量,並通過這個變量插入查詢但我得到上面的線值誤差(?,?,?,?,?)......如果我硬直接引用變量賦值它被保存到數據庫是什麼錯誤我在幹嘛?請幫助.......這是我的代碼蟒蛇 - 源碼InterfaceError:錯誤綁定參數0 - 可能是不支持的類型

  self.uname = self.le1.text() 
      self.passwd = self.le2.text() 
      self.permssn = self.le3.text() 
      self.queryCurs.execute('''CREATE TABLE IF NOT EXISTS USER 
      (USERNAME TEXT NOT NULL, PASSWORD TEXT NOT NULL, PERMISSION TEXT NOT NULL)''') 
      self.queryCurs.execute('''INSERT INTO USER(USERNAME, PASSWORD, PERMISSION) 
      VALUES(?,?,?)''',(self.uname,self.passwd,self.permssn)) 
      print ('inserted row') 
      self.createDb.commit() 

我在哪裏出錯了?

回答

-3

值應在touple(方括號),就像這樣:

self.queryCurs.execute("INSERT INTO USER(USERNAME, PASSWORD, PERMISSION) VALUES(?,?,?)",[self.uname, self.passwd, self.permssn]) 

既然你在相同的順序,在表列中添加值,你並不真正需要他們在您的查詢,所以這也將工作:

self.queryCurs.execute("INSERT INTO USER VALUES(?,?,?)",[self.uname, self.passwd, self.permssn]) 
+0

元組使用括號,並且工作得很好。 –

+0

不適合我,我測試過他的代碼,它只是工作時,我在我的答案已經改變了它像 – Aleksandar

0

的方法,從那裏你得到的文本「le1.text()」,並沒有存儲在字符串格式的值。我得到了同樣的錯誤,整理出我的數據類型不匹配。我將這個值轉換爲字符串,它工作正常。

也不要錯過在末尾添加逗號,因爲執行查詢所需的鬱金香。

self.queryCurs.execute('''INSERT INTO USER(USERNAME, PASSWORD, PERMISSION) 
     VALUES(?,?,?)''',(str(self.uname),str(self.passwd),str(self.permssn),)) 
相關問題