2017-10-11 166 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

相关问题