我需要一个mysql查询,它会返回匹配的NUMBER行,而不是匹配行的数组

时间:2011-04-22 18:49:47

标签: php mysql

基本上我正在做一个登录脚本,其中必须在用户登录之前在数据库中检查用户名。所以我需要一个mysql查询,它只返回与目标表匹配的指定用户名的记录数,而不是包含记录的数组。我试过这个:

$result = mysql_query( "SELECT COUNT(*) from usersecurity WHERE Email ='$username'" );

但显然它返回结果资源而不是int或number值。

4 个答案:

答案 0 :(得分:3)

你快到了:

$result = mysql_query( "SELECT COUNT(*) from usersecurity WHERE Email ='$username'" );
$row = mysql_fetch_row($result);
print($row[0]) //0 or 1, etc

答案 1 :(得分:2)

在返回的资源上使用mysql_num_rows

$result = mysql_query( "SELECT * from usersecurity WHERE Email ='$username'" );
$count = mysql_num_rows( $result );

答案 2 :(得分:1)

来自http://php.net/manual/en/function.mysql-query.php

“对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,如果出错则返回FALSE。”

换句话说,mysql_query总是会返回一个资源。

可用于快速验证的是

mysql_num_of_rows($result) > 0

http://php.net/manual/en/function.mysql-num-rows.php

if(!empty(mysql_fetch_row($result))

答案 3 :(得分:0)

不要忘记你仍然需要这个来检索你的结果

$row = mysql_fetch_row($result)

$ row [0]将是你的整数。