2011-11-13 14 views
-1

が何かのログインシステムを作成し、取得しています:mysql_result():指定された引数が有効なMySQL結果リソースエラーではありませんか?

警告:mysql_result():与えられた引数は、ライン21

上の.../FUNC/user.func.phpで有効なMySQLの結果リソースではありません

はここに私のコードです:

function user_register($email, $name, $password) { 

} 

function user_exists($email) { 
    $email = mysql_real_escape_string($email); 
    $query = mysql_query("SELECT COUNT('user_id') FROM 'users' WHERE 'email' ='$email'"); 

    //this is line 21: 
    return (mysql_result($query, 0) == 1) ? true : false; 
} 

答えて

1

あなたのSQL構文エラーに満ちている、単一引用符は文字列リテラルを引用するのに使用され、バッククォート(または標準SQLでの二重引用符)は、識別子に使用されています。試してみてください:

$query = mysql_query("SELECT COUNT(user_id) FROM users WHERE email = '$email'"); 

これらの識別子のいずれも引用する必要はないので、気にしないでください。成功した場合にリソースを返し、エラー時にはFALSE SELECT、SHOWのために

、DESCRIBE、EXPLAINおよび結果セットを返す他の文、するmysql_query():fine manualから

SQL構文エラーを修正した後、エラーチェックを追加することをお勧めします。

1

クエリにエラーがあります。エラーが何であるか把握したい場合は、mysql_error()

0

と入力してください。クエリに構文エラーがあります。フィールド名とテーブル名に一重引用符を使用しています。フィールド/テーブル名から通常の文字列に変更されます。あなたの質問はcount(some string) from someotherstring where yetanotherstringになってしまいます。クエリの呼び出しはこのような何かを構築していた場合は

:あなたは構文エラーが通知されていると思います

$result = mysql_query(...) or die(mysql_error()); 

。今のところ、あなたのコードはクエリが成功したとみなしますが、これは非常に悪いことです。正確にはONEのクエリが成功する方法があり、失敗する方法は非常に多くあります。

0

あなたのコードにはエラー処理がありません。何か問題が生じた場合でも、スープを石から作り出そうとしていることに気づいていません。 manualの例を見てみると、結果を分析しようとする前にすべてのクエリでエラーをチェックします。

関連する問題