-1

我正在尝试在 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()

我究竟做错了什么?我是新手,所以我希望我做得有点好。谢谢。

4

3 回答 3

0

尝试从 %s 附近取出引号

cursor.execute("SELECT * FROM Accounts WHERE Email=%s AND Password=%s" % (_Email, _Password))
于 2012-04-14T22:46:10.770 回答
0
cursor.execute("SELECT * FROM Accounts WHERE Email=%s AND Password=%s", (_Email, _Password)) 

尝试这个。如果您使用 MySQLdb 的参数支持而不是 python 的格式字符串,该库会为您进行转义(出于安全原因,这也是非常重要的一点。

请注意,mysqldb 数据库驱动程序仅支持 %s,因此无论要发送到数据库的数据类型如何,都必须使用它。

于 2012-04-14T22:46:14.947 回答
0

出于某种原因(我认为是因为使用了终端),当我输入信息时,我必须按 Enter。我相信当我按下回车键时,'\n' 被插入,这就是导致 numrows 返回 0 的原因。

我放置

.replace('\n', '')

在 _Email 和 _Password 之后,现在效果很好!现在我还有另一个问题,但没什么大不了的。感谢大家的帮助!

于 2012-04-21T20:52:48.217 回答