如何在PHP中获得select count(*)查询的结果?
我在PHP中使用以下查询:如何在PHP中获得select count(*)查询的结果?,php,mysql,Php,Mysql,我在PHP中使用以下查询: mysql_query("select count(*) from registeredUsers where email=".$_SESSION["username"]); 当我使用echo打印结果时,不会打印任何内容。上述语句的返回值到底是多少?计数查询将始终返回一个值,如果没有返回任何记录,则该值为0,如果记录匹配,则返回一个大于0的整数 它至少应该打印出0,您发布的查询意味着: 获取电子邮件地址等于会话用户名的记录数 这可能没有意义,您的意思是执行where
mysql_query("select count(*) from registeredUsers where email=".$_SESSION["username"]);
当我使用
echo
打印结果时,不会打印任何内容。上述语句的返回值到底是多少?计数查询将始终返回一个值,如果没有返回任何记录,则该值为0
,如果记录匹配,则返回一个大于0
的整数
它至少应该打印出0
,您发布的查询意味着:
获取电子邮件地址等于会话用户名的记录数
这可能没有意义,您的意思是执行
where username=“.$\u SESSION[“username”]
或类似操作吗?您可能希望回显查询本身,以确定它返回的是您期望的结果。您需要在查询中的SESSION变量周围加上单引号
$result = mysql_query("SELECT COUNT(*)
FROM registeredUsers
WHERE email = '".$_SESSION['username']."' ");
mysql\u query()返回用于从结果集中获取信息的资源。使用诸如mysql\u fetch\u array()之类的函数从结果集中检索行。在这种情况下,将只有一行。您的代码不包含任何fetch语句。另一个答案是,在
$\u会话[“username”]周围需要单引号
$result = mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'");
// Verify it worked
if (!$result) echo mysql_error();
$row = mysql_fetch_row($result);
// Should show you an integer result.
print_r($row);
在回显之前,请尝试将其强制转换为字符串。作为int,0将显示为空字符串。mysql\u查询返回一个结果资源。您可以使用
mysql\u结果读取结果。
$res = mysql_query("select count(*) from registeredUsers where email='".mysql_real_escape_string($_SESSION["username"])."'");
echo mysql_result($res,0);
它应该为您提供拥有您作为此查询参数提供的电子邮件地址的registere用户数量。(可能是检查给定的电子邮件地址是否已为其他用户注册。)
如果电子邮件地址尚未注册,将返回一个空字段。(这可能是您的案例中没有打印任何内容的原因。请使用您确定在数据库中的电子邮件地址进行尝试。)您需要使用mysql\u fetch\u array()在用户定义的变量中返回值。然后必须打印返回值
$result=mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'")
$COUNT_NUMBER=mysql_fetch_array($result);
echo "<br>1.Count=" .$COUNT_NUMBER[0];
$result=mysql\u查询(“从registeredUsers中选择count(*),其中email='{$\u会话['username']}'”)
$COUNT\u NUMBER=mysql\u fetch\u数组($result);
echo“
1.Count=”.$Count_编号[0];
这就是我所想的,但是我尝试用ECHO打印的任何东西,都没有打印出来,为什么?它返回一个<代码>资源< /代码>,你需要在另一个函数中使用。如果你想得到结果,请考虑使用。将MySQL查询的结果传递给这个函数。假设$i会话[用户名]这不是一个数字,这可能是一个安全的假设,因为它所比较的专栏名为“email”,这不是我第一次没有发现幽默;)单引号可以拯救生命!使用它们你几乎不会犯代码中的错误。语法高亮器已经开始适应了:你的语法需要一点work那里。$result=mysql\u query(“从registeredUsers中选择count(*),其中email='{$\u SESSION['username']}'”;
我知道-我在保存后已经修复了额外的双引号。这不是真的,您可以通过执行以下命令看到:php-r'echo 0,\n”
echo(int)0;
打印字符串0
。你说得对。很有趣。下次发生这种情况时,我必须更加注意。
$result=mysql_query("select count(*) from registeredUsers where email='{$_SESSION['username']}'")
$COUNT_NUMBER=mysql_fetch_array($result);
echo "<br>1.Count=" .$COUNT_NUMBER[0];