【问题标题】:PHP - Return count(*) results [duplicate]PHP - 返回计数(*)结果[重复]
【发布时间】:2025-12-31 14:30:12
【问题描述】:

如何使用 PDO 返回计数的行数

这是我的代码:

$n=$dbh->prepare("SELECT count(*) FROM users_notifications WHERE userid=0 OR userid=:userid");
$n->bindParam(":userid",$userdata['id']);
$n->execute();
$notifications = count($n);

这仅返回 1。虽然我在数据库中运行查询时有 2 个结果:SELECT count(*) FROM users_notifications WHERE userid=0 OR userid=:userid

【问题讨论】:

标签: php mysql sql pdo


【解决方案1】:

count SQL 函数是一个聚合函数,它返回 一行,其中行数与 where 子句匹配。

PHP 的count 返回结果集中的行数,如上一段所述,该行数应该是1。相反,您应该检索结果 column 的值。例如:

$n=$dbh->prepare("SELECT count(*) as c FROM users_notifications WHERE userid=0 OR userid=:userid");
$n->bindParam(":userid",$userdata['id']);
$n->execute();
$result = $n->fetch(PDO::FETCH_ASSOC);
$notifications = $result['c'];

【讨论】: