Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中获得select count(*)查询的结果?_Php_Mysql - Fatal编程技术网

如何在PHP中获得select count(*)查询的结果?

如何在PHP中获得select count(*)查询的结果?,php,mysql,Php,Mysql,我在PHP中使用以下查询: mysql_query("select count(*) from registeredUsers where email=".$_SESSION["username"]); 当我使用echo打印结果时,不会打印任何内容。上述语句的返回值到底是多少?计数查询将始终返回一个值,如果没有返回任何记录,则该值为0,如果记录匹配,则返回一个大于0的整数 它至少应该打印出0,您发布的查询意味着: 获取电子邮件地址等于会话用户名的记录数 这可能没有意义,您的意思是执行where

我在PHP中使用以下查询:

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];