我在链接文件中有这个函数:
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 个需要您注意的独立项目:
- 您无法访问查询返回的
COUNT(ID)
和 - 您正在尝试访问作为数组的 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 结果集的更多信息
关于php - 如何在 php 中访问 MySQL Count 函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23751257/