在PHP脚本中不起作用“SELECT COUNT(*)FROM ...”

时间:2013-12-19 20:52:29

标签: php mysql

我的函数应返回包含'$ email'等电子邮件的行数。但乳清一直返回0,虽然在数据库中我有电子邮件行,就像我在变量'$ email'中插入一样。可能是什么原因?

function checkMail($email){     
    $email = mysql_real_escape_string($email);
    $sql = "SELECT COUNT(*) FROM users WHERE email='$email'";       
    return mysql_query($sql);   
}

3 个答案:

答案 0 :(得分:0)

function checkMail($email){     
  $email = mysql_real_escape_string($email);
  $sql = "SELECT COUNT(*) FROM users WHERE email='$email'";       
  $resource=mysql_query($sql);
  $row=mysql_fetch_array($resource);
  return $row[0];   
}

答案 1 :(得分:0)

您没有返回结果,而是返回查询资源:

function checkMail($email){     
    $email = mysql_real_escape_string($email);
    $sql = "SELECT COUNT(*) as emailCount FROM users WHERE email='$email'";       
    $query = mysql_query($sql) or die(mysql_error()); // show error if one happens
    return mysql_fetch_assoc($query);
}

这将返回一个包含结果的关联数组(如果成功),您应该可以通过以下方式访问您的计数:

$res = checkMail('your@email.com');
$count = $res['emailCount'];
  

旁注:

不推荐使用

mysql个函数,您应该使用mysqliPDO语法: https://stackoverflow.com/a/13944958/2812842

答案 2 :(得分:-1)

要获取计数,请使用:

mysql_query($sql)
$row = mysql_fetch_assoc($result);
return($row[0]);

有趣的是mysql_query返回0,表示查询失败。使用以下命令检查相应的错误消息:

echo mysql_error();
相关问题