PDO:如何获得SELECT FOUND_ROWS()的结果?

时间:2014-04-15 06:43:39

标签: php pdo

我是PDO的新手,对不起,这太简单了。

基本上,我想要SELECT并获取返回的行和这些行的数量,在进一步处理之前为零行检查。

$rows = $conn->query('SELECT ...)允许我foreach($rows as $row),但正如我所说,我想检查零。

count($rows)总是返回1,即使没有结果(!)。

我想过使用SELECT SQL_CALC_FOUND_ROWS后跟
$foundRows = $connection->exec('SELECT FOUND_ROWS() AS numRows');但我非常愚蠢,以至于我无法弄清楚如何从中获取行数。

1 个答案:

答案 0 :(得分:4)

  

基本上,我想要SELECT并获取返回的行和这些行的数量,

你选错了行

 $rows = $conn->query('SELECT ...')->fetchAll();

实际上会给你$ rows数组,可以计算。然而,

  

在进一步处理之前检查零行。

您不需要为此计算$行数。只需使用$ rows数组本身:

id (!$rows) ... // no rows returned

如果你欠INDEED需要SELECT FOUND_ROWS() - 然后从查询中获得结果,你应该获取它:

$foundRows = $connection->query('SELECT FOUND_ROWS()')->fetchColumn();

请记住,永远不要将exec与PDO一起使用。