1

I try to fix it, but i just can not see where the problem is? somebody help me please! Thank you so much

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 回答