【发布时间】:2015-01-29 14:30:40
【问题描述】:
我正在构建一个使用 Python MySQL 模块连接到数据库的教科书拍卖应用程序。登录代码不起作用。出现提示时,我输入我知道在数据库中的用户名/密码,但它一直说用户名/密码无效。我是否错误地使用了光标对象?
#import the datetime package to use dates
import datetime
#import the mysql connector to access the database
import mysql.connector
#establish a connection to the database
cnx = mysql.connector.connect(user='uXXXXXX', password='pXXXXXX',
host='COMPDBSXXX', database='schemaXXXXXX')
#retrieve a cursor to execute queries
cursor = cnx.cursor()
logged_in = False
########----USER INTERFACE STARTS HERE----###################
print("Welcome to eGCC! Please select an action.")
print("\r")
print("1. LOGIN")
###---LOGIN----#################
while logged_in == False:
print("Enter eGCC username: ")
username = input()
print("Enter eGCC password: ")
password = input()
query = ("SELECT Username from egccuser")
cursor.execute(query)
for ID in cursor:
if ID == str(username):
userID = username
query = ("SELECT password from egccuser where Username = %s")
qdata = str(userID)
cursor.execute(query,qdata)
if cursor == password:
logged_in = True
if logged_in == False:
print("Error: Invalid Username/Password")
#close cursor
cursor.close()
#close the connection to the DBMS
cnx.close()
【问题讨论】:
-
cursor.execute(query, (qdata, )) -
你的意思是我应该把它放在 for 循环中的 cursor.execute 的位置吗?如果是这样,那并没有改变任何东西。我是否正确循环光标?
-
qdata 应该是元组或字典,而不是字符串。 dev.mysql.com/doc/connector-python/en/…