-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)) 

これを試して。Pythonのフォーマット文字列の代わりにMySQLdbのパラメータサポートを使用する場合、ライブラリがエスケープを行います(これはセキュリティ上の理由から非常に重要なポイントでもあります。

mysqldbデータベースドライバーは%sのみをサポートするため、データベースに送信するデータ型に関係なく使用する必要があることに注意してください。

于 2012-04-14T22:46:14.947 に答える
0

なんらかの理由で(ターミナルを使用しているためだと思います)、情報を入力するときにEnterキーを押す必要があります。Enterキーを押すと、「\ n」が挿入され、numrowsが0を返す原因になったと思います。

置いた

.replace('\n', '')

_Emailと_Passwordの後、今ではうまく機能しています!今、私は何か他の問題を抱えていますが、大きな問題はありません。助けてくれたみんなに感謝します!

于 2012-04-21T20:52:48.217 に答える