MySQLdb“SELECT FROM”登录

时间:2012-04-14 22:31:33

标签: python mysql mysql-python

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

我做错了什么?我是新手,所以我希望我做得好一些。感谢。

3 个答案:

答案 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之后,现在效果很好!现在我还有另外一个问题,但没什么大不了的。感谢大家的帮助!