1

私はそれを修正しようとしていますが、問題がどこにあるのかわかりませんか? 誰か助けてください!どうもありがとう

function user_exists($email){
    $email = mysql_real_escape_string($email);
    $query = mysql_query("SELECT COUNT('user_id') FROM 'users' WHERE 'email'='$email'");
    return (mysql_result($query, 0) == 1 ) ? true:false; //this is line 26
}

?>
4

3 に答える 3

4

クエリのフィールド名とテーブル名を囲む引用符を削除してみてください。

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

クエリを実行した後に戻り値を確認し、何か問題が発生した場合はデータベースのエラー メッセージをエコーアウトすることは間違いありません。

于 2012-08-09T18:18:41.537 に答える
3

まず、 で三項演算子を使用する必要はありませんreturn

これ

return (mysql_result($query, 0) == 1);

追加のロジックを処理する必要なく、同じことを行います。

第二に、クエリは'フィールド名を前後に使用します。フィールド名のシングル クォーテーションではなく、バックティック (`) です。

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

注意:関数の使用を停止する必要がありmysql_*ます。それらは廃止されています。代わりにPDO (PHP 5.1 以降でサポート) またはmysqli (PHP 4.1 以降でサポート) を使用してください。どちらを使用すればよいかわからない場合は、この SO 記事 をお読みください

于 2012-08-09T18:19:07.973 に答える
1

mysql_query は、エラー時に false を返します。エラー状態を常に確認し、エラーが検出された場合は対処する必要があります

function user_exists($email){
    $email = mysql_real_escape_string($email);
    $sql = "SELECT COUNT('user_id') FROM 'users' WHERE 'email'='$email'";
    if(!($query = mysql_query($sql))) die(mysql_error());
    return (mysql_result($query, 0) == 1);
}
于 2012-08-09T18:19:57.573 に答える