PHP PDO-mysqli_num_rows的替代方法

wes*_*ast 5 php mysqli pdo

使用mysqli,我可以使用mysqli_num_rows从选择查询中获取行数。我无法找到一种方法来执行PDO,而不必执行类似的单独查询SELECT COUNT(*)?我已经有一个记录集时,看不到执行单独查询的意义。

Syn*_*hro 5

你可以使用SQL_CALC_FOUND_ROWS作为记录在这里。例如:

$result = $db->prepare("SELECT SQL_CALC_FOUND_ROWS id, name FROM fruit WHERE calories > 100"); 
$result->execute();
$result = $db->prepare("SELECT FOUND_ROWS()"); 
$result->execute();
$row_count =$result->fetchColumn();
echo $row_count;
Run Code Online (Sandbox Code Playgroud)

当您有LIMIT子句时,此选项通常用于获取完全匹配计数,但是,在没有子句的情况下,它可以正常工作,并且比用a再次发出相同查询的效率要高得多,COUNT(*)因为它只检索第一个查询存储的计数值值,而不必运行另一个完整查询。