使用 PHP PDO 获取结果集的行数

当需要匹配数据库的行数时,我们经常使用 rowCount(),但是如果是查询数据库是否包含某条记录时,直接使用 rowCount() 就不太合适,一般我们会使用

select count(1) from `table`

进行数据查询,这些使用 rowCount() 则永远都会返回 1

使用 fetchColumn() 函数

PDOfetchColumn 函数可以直接从查询中获取单个值

$count = $pdo->query("SELECT count(*) FROM table")->fetchColumn();

或者

$stmt = $pdo->prepare("SELECT count(*) FROM goods WHERE category_id = ?");
$stmt->execute([$category_id]);
$count = $stmt->fetchColumn();

或者

$stmt = $pdo->prepare("SELECT count(*) FROM goods WHERE name= ?");
$stmt->bindValue(1, $name, PDO::PARAM_STR);
$stmt->execute();
$count = $stmt->fetchColumn();