python - ( "SELECT password FROM peerlist WHERE username=?",用户名1)

标签 python sqlite

我创建了一个登录窗口,其中有一个表“peerlist”,其中包含名称、用户名、密码。我想验证表中的用户名和密码。

username1 包含我从登录窗口获得的用户名。我尝试使用 username1 检索密码。

cursor.execute( "SELECT password FROM peerlist WHERE username=?",username1)

但是有一个错误

sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current 
                          statement uses 1, and there are 3 supplied.

最佳答案

使用元组作为参数:

cursor.execute( "SELECT password FROM peerlist WHERE username=?", (username1,))

参数应该是元组或列表(序列);但字符串也是一个序列(它有长度,您可以寻址各个字符),因此您为 .execute() 调用提供了 len(username1) 序列> 字符而不是一个参数。显然用户名是 3 个字符长,因此出现错误消息。

关于python - ( "SELECT password FROM peerlist WHERE username=?",用户名1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335646/

相关文章:

python-3.x - 在函数中打开另一个 .py 文件以在 Python3.5 中传递参数

python - Heroku 路由器日志记录格式

python类属性继承

sqlite - 如何在sqlite中使用where和group by提高查询性能

java - 如何从特定行检索数据 SQLiteAssetHelper

java - 如何动态地将 View 添加到自定义光标适配器..?

python - 异步任务取消

python - 如何编写每周 EMA 的 CustomFactor - Python、Quantopian

python - 如何在jupyter笔记本中设置日期时间列的格式

ruby-on-rails - 如何在sqlite中存储json数据