我试着解决它,但我就是看不到问题在哪里?谁来帮帮我!非常感谢
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
}
?>发布于 2012-08-10 02:18:42
尝试删除查询中字段名和表名两边的引号:
$query = mysql_query("SELECT COUNT(user_id) FROM users WHERE email='$email'");它一定要确保您在运行查询后检查返回值,并在出现错误时回显数据库错误消息。
发布于 2012-08-10 02:19:08
首先,您不需要在return中使用三元运算符。
这
return (mysql_result($query, 0) == 1);做同样的事情,而不需要处理额外的逻辑。
其次,您的查询在字段名称周围使用'。这不是字段名称的单引号,而是一个反引号(`)。
$query = mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `email`='$email'");请注意:您应该停止使用mysql_*函数。它们正被弃用。相反,使用PDO (PHP5.1支持)或mysqli (PHP4.1支持)。如果您不确定要使用哪一个,可以使用read this SO article。
发布于 2012-08-10 02:19:58
出错时,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);
}https://stackoverflow.com/questions/11889540
复制相似问题