php - 如何在 php 中访问 MySQL Count 函数的结果?

标签 php mysql

我在链接文件中有这个函数:

function getNumberOfHerps() {
    $sql = "SELECT COUNT(ID) 
            FROM HERPES;";
    return DBIface::connect()->query($sql);
}

我可以从网站的任何其他页面调用此功能。我想要做的是能够在各种页面上使用我的 php 代码中的 COUNT 函数的结果,因为我需要在代码中多次知道数据库中有多少个 herps。

我试过这个:

$result = getNumberOfHerps();
$numberOfHerps = $result['COUNT'];

但是它在第二行引起了解析错误,这样说:

Cannot use object of type PDOStatement as array.

请告诉我如何在 PHP 代码中使用 Count 函数的结果。谢谢:D

最佳答案

您实际上在这里面临 2 个需要您注意的独立项目:

  1. 您无法访问查询返回的 COUNT(ID)
  2. 您正在尝试访问作为数组的 PDOStatement 对象的数据

所以:

您可以为 COUNT() 函数返回的值创建一个 ALIAS:

$sql = "SELECT COUNT(ID) as COUNT...";

这将为您的结果集提供一个名为 COUNT 的新列,您可以从中访问行数。

其次,您需要对 PDOStatement 执行fetch 操作以访问它的数据(这就是导致您的解析错误的原因)。您可以通过多种方式访问​​ PDOStatement 中的结果集:

list ($idCount) = $result->fetch();
// $idCount will now have the value of your COUNT column

$results = $result->fetch(PDO::FETCH_ASSOC);
// you can then access your COUNT as $results['COUNT'];

甚至

$results = $result->fetch(PDO::FETCH_OBJ);
// you can then access your count as $results->COUNT

实际上有几个额外的 FETCH_* 样式可供使用。我所描述的那些可能是最常见的。您可以在以下位置找到有关获取 PDO 结果集的更多信息

http://us1.php.net/manual/en/pdostatement.fetch.php

关于php - 如何在 php 中访问 MySQL Count 函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23751257/

相关文章:

php - 通过 mysql/php 中的 foreach 循环更新查询

php - 使用子主题在 headers.php 中插入字体

mysql - SQL语句中如何使用or运算符?

java - metaData.getPrimaryKeys() key为单个时返回4条相同的记录

php - MySQL 提交和事务

php - 如何获取一个开放api站点的所有数据

php - 如何使用指定参数的 Android Volley GET 方法?

mysql - 将数组与值存储在数据库中

python - django 查询对象上的 Iterator()

mysql - 未知表引擎 'InnoDB'