-3

目的は、Python と MySQLdb を使用して、電子メールがデータベースに既に存在するかどうかを確認することです。変数 mail を使用して電子メールを保存しています。MySQL フォームは電子メールです。私は以下のコードを持っています:

if cursor.execute("select count(*) from registrants where email = " + "'"email2"'") == 0:
     print "it doesn't exist!"

このステートメントのどこが間違っているか、またはどうすればこれを行うことができますか?

4

2 に答える 2

3

どこから始めればよいかほとんどわかりません。

SQL の文字列を Python プログラムに入力するだけでは、データベースにクエリを実行することはできません。実際には、データベース接続を開き、カーソルをインスタンス化し、そのカーソルを使用して SQL を実行し、結果をフェッチする必要があります。これはすべて、MySQLdb のドキュメントで説明されています。

それが完了したら、フォームから SQL ステートメントに email パラメータを実際に渡す必要がありますが、これも行っていません。

于 2012-12-03T15:57:02.520 に答える
0

それは単なる mysql クエリ文字列であるため、うまくいきません。mysql クライアントを使用してこのクエリを実行し、結果とテストを受け取る必要があります。pymysqlを使用すると、次のようになります。

import pymysql
connection = pymysql.connect(host,user,password,database)
cursor = connection.cursor()
cursor.execute("select count(*) from registrants where email = ?") #you need to replace the ? with some actual value or the query will fail
result = cur.fetchone()
if result[0]==0:
    print "E-mail does not exist!"
于 2012-12-03T15:57:55.700 に答える