我執行下面的查詢中sqllite供應蟒蛇
idP = cur.execute('SELECT id from profs where name = ?',name)
我有一個數據庫表像這樣綁定的號碼不正確提供。當前語句使用1,並提供了6個。
我認爲字符串'xxxxxx'被看作是六個單獨的字符。
我執行下面的查詢中sqllite供應蟒蛇
idP = cur.execute('SELECT id from profs where name = ?',name)
我有一個數據庫表像這樣綁定的號碼不正確提供。當前語句使用1,並提供了6個。
我認爲字符串'xxxxxx'被看作是六個單獨的字符。
可以嘗試將參數轉換爲一個元組:
idP = cur.execute('SELECT id from profs where name = ?',(name,))
執行方法預計可迭代長度爲1的在這種情況下,綁定參數(列表,元組等)。所以它試圖遍歷當你通過它在字符串中,你應該把字符串列表,並把它傳遞代替:
idP = cur.execute('SELECT id from profs where name = ?',[name])
所以[名稱]與(名稱)相同?我認爲這兩個作品。 – cynric
謝謝,我想它的工作原理,但爲什麼我們寫一個逗號在名字 – cynric
之後,我認爲它只是python方式,因爲它說「一個元組包含許多用逗號分隔的值」如果你的回答完成並想要關閉這個問題,請回答plz。 – Vollmilchbb
我還有另一個問題,如果我們確切地知道查詢將只返回一行,有沒有辦法獲得該行(而不是地址)?否則我們只能使用迭代器來獲取它? – cynric