我创建了一个登录窗口,其中有一个"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.发布于 2013-03-11 18:03:26
使用参数的元组:
cursor.execute( "SELECT password FROM peerlist WHERE username=?", (username1,))参数应该是一个元组或一个列表(一个序列);但是字符串也是一个序列(它有一个长度,您可以对各个字符进行寻址),所以您为.execute()调用提供了一个len(username1)字符序列,而不是一个参数。显然,用户名是3个字符长度,因此出现错误消息。
发布于 2013-03-11 18:00:20
这不是一个好主意,会导致SQL注入。详情请参阅http://docs.python.org/2/library/sqlite3.html
cursor.execute( "SELECT password FROM peerlist WHERE username=%s"%(username1))https://stackoverflow.com/questions/15335646
复制相似问题