基本上我正在做一个登录脚本,其中必须在用户登录之前在数据库中检查用户名。所以我需要一个mysql查询,它只返回与目标表匹配的指定用户名的记录数,而不是包含记录的数组。我试过这个:
$result = mysql_query( "SELECT COUNT(*) from usersecurity WHERE Email ='$username'" );
但显然它返回结果资源而不是int或number值。
答案 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]将是你的整数。