2015-11-17 39 views
1

我執行下面的查詢中sqllite供應蟒蛇

idP = cur.execute('SELECT id from profs where name = ?',name) 

我有一個數據庫表像這樣綁定的號碼不正確提供。當前語句使用1,並提供了6個。

我認爲字符串'xxxxxx'被看作是六個單獨的字符。

回答

1

可以嘗試將參數轉換爲一個元組:

idP = cur.execute('SELECT id from profs where name = ?',(name,)) 
+0

謝謝,我想它的工作原理,但爲什麼我們寫一個逗號在名字 – cynric

+0

之後,我認爲它只是python方式,因爲它說「一個元組包含許多用逗號分隔的值」如果你的回答完成並想要關閉這個問題,請回答plz。 – Vollmilchbb

+0

我還有另一個問題,如果我們確切地知道查詢將只返回一行,有沒有辦法獲得該行(而不是地址)?否則我們只能使用迭代器來獲取它? – cynric

0

執行方法預計可迭代長度爲1的在這種情況下,綁定參數(列表,元組等)。所以它試圖遍歷當你通過它在字符串中,你應該把字符串列表,並把它傳遞代替:

idP = cur.execute('SELECT id from profs where name = ?',[name]) 
+0

所以[名稱]與(名稱)相同?我認爲這兩個作品。 – cynric