0

私のクエリ:

$result = mysql_query("SELECT * FROM members WHERE email=$email")
or die(mysql_error());

この場合、$email は「info@frankkluytmans.nl」で埋められます。このクエリが実行されたときに発生するエラーは次のとおりです。

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@frankkluytmans.nl' at line 1

私は何を間違っていますか?

4

7 に答える 7

1

いくつかのこと..

  1. 関数は使用しないmysql_*でください。非推奨です。
  2. 入力をサニタイズします。あなたの例では$email、リテラルなので引用する必要があります。
于 2013-07-02T19:44:21.517 に答える
1

frankkluytmans.nl の場合、mysql クエリの構文、つまり tablename.columnname と競合します

 $result = mysql_query("SELECT * FROM members WHERE email='".$email."'")
于 2013-07-02T19:46:14.487 に答える
0

email 変数を引用符で囲む必要があります。

$result = mysql_query("SELECT * FROM members WHERE email='$email'")
or die(mysql_error());

ただし、PHP 関数の「mysql_」範囲はまもなく非推奨になり、mysqli API に置き換える必要があることを知っておく必要があります。使用方法を示す簡単なサンプルは、http ://www.php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-examples にあります。

于 2013-07-02T19:44:43.027 に答える
0
$result = mysql_query("SELECT * FROM members WHERE email='$email'")

それを引用します。

また、通常の PHP mysql 関数は、PHP 5.5 で非推奨になります。

mysqlipdoを見てください。

于 2013-07-02T19:44:59.340 に答える
0

次のようなものを試してください:

$result = mysql_query("SELECT * FROM members WHERE email='".$email."'")
or die(mysql_error());

変数を引用符で囲む必要があり、文字列内に変数を含めないようにすることをお勧めします。

MySQL_ は非推奨になっているため、代替手段を確認することをお勧めします。mysqliを試してください。

于 2013-07-02T19:45:10.583 に答える
0

$email を一重引用符で囲む必要があります

$result = mysql_query("SELECT * FROM members WHERE email='$email'")
于 2013-07-02T19:45:15.117 に答える
-1

クエリを変更してください。

$result = mysqli_query("SELECT * FROM members WHERE email='".$email"'");
于 2013-07-02T19:45:25.920 に答える