我正在尝试使用Python中的MySQLdb登录我的表名为acounts,但它对我不起作用。我一直收到“未登录”的消息。这是我的代码:
database = MySQLdb.connect("127.0.0.1", "root", "pswd", "Kazzah")
cursor = database.cursor()
cursor.execute("SELECT * FROM Accounts WHERE Email='%s' AND Password='%s'" % (_Email, _Password))
database.commit()
numrows = cursor.rowcount
if numrows == 1:
msg = "Logged In"
else:
msg = "Not Logged In"
cursor.close()
database.close()
我做错了什么?我是新手,所以我希望我做得好一些。感谢。
答案 0 :(得分:0)
尝试从%s周围取出引号
cursor.execute("SELECT * FROM Accounts WHERE Email=%s AND Password=%s" % (_Email, _Password))
答案 1 :(得分:0)
cursor.execute("SELECT * FROM Accounts WHERE Email=%s AND Password=%s", (_Email, _Password))
试试这个。如果您使用MySQLdb的参数支持而不是python的格式字符串,则库会为您执行转义(出于安全原因,这也是非常重要的一点。
请注意,mysqldb数据库驱动程序仅支持%s,因此无论要发送到数据库的数据类型如何,都必须使用它。
答案 2 :(得分:0)
出于某种原因(我认为因为使用终端),当我输入信息时,我必须按Enter键。我相信当我按下回车时,'\ n'被插入,这是导致数字返回0的原因。
我放了
.replace('\n', '')
在_Email和_Password之后,现在效果很好!现在我还有另外一个问题,但没什么大不了的。感谢大家的帮助!