2017-10-11 91 views
0

我正在研究一個需要MySQL連接的簡單程序。我的查詢出現了問題,我堅持使用它。它說「並非所有在字符串格式化過程中轉換的參數」,但據我所知,我的語法是正確的。它有什麼問題?這裏是我的代碼:Python MySQLdb錯誤 - 格式字符串沒有足夠的參數

username = (self.username.text()) 
cur.execute("SELECT * FROM users WHERE username = %s", (username)) 
+1

你的意思是定義查詢參數作爲一個元組,你缺少的 「用戶名」 後一個逗號: 'cur.execute( 「SELECT * FROM用戶其中username =%s」 時,(用戶名,))' – alecxe

+0

哦謝謝你的糾正。我在這裏只是一個初學者btw。我認爲如果它有效,它已經完成了。 – Jaypee

回答

0

經過大量的試驗和錯誤。我已經知道了哈哈。那就是:

username = (self.username.text()) 
cur.execute("SELECT * FROM users WHERE username = %s", (username,)) 
+1

不,字符串格式化SQL查詢不是解決方案。這是** a)**危險(參見[SQL注入](https://en.wikipedia.org/wiki/SQL_injection))** b)**容易出錯(檢查'username'是否包含單個引用?)。 – alecxe

+0

我已經更新了我的答案。再次感謝 – Jaypee

相關問題