如何用 PDO 将 SQL 查询的单个结果存入变量?
数据阿明
可以用 PDOStatement::fetchColumn() 读取查询结果第一行的第一列,并将结果存入变量,不必使用空的 foreach 循环:
$stmt = $pdo->query("SELECT COUNT(*) FROM import WHERE tn_nr='12345'");
$count = $stmt->fetchColumn();
echo $count;
SELECT COUNT(*) 返回一个聚合值,适合用 fetchColumn() 读取。该方法会返回结果集中指定列的值;省略参数时读取第一列。如果查询没有返回行,方法会返回 false,可以根据需要进行检查:
$value = $stmt->fetchColumn();
if ($value === false) {
// 没有可读取的行
}
如果查询条件来自变量,可以使用预处理语句绑定参数,避免直接将数据拼进 SQL:
$stmt = $pdo->prepare(
'SELECT COUNT(*) FROM import WHERE tn_nr = :tn_nr'
);
$stmt->execute(['tn_nr' => $tnNr]);
$count = $stmt->fetchColumn();
备注:内容仅供参考。
