由于性能问题,我尽量避免使用Count().(即SELECT COUNT()FROM Users)
如果我在phpMyAdmin中运行以下命令,则可以:
SELECT SQL_CALC_FOUND_ROWS * FROM Users;
SELECT FOUND_ROWS();
Run Code Online (Sandbox Code Playgroud)
它将返回行数#.即用户数量.
但是,如果我在PHP中运行,我不能这样做:
$query = 'SELECT SQL_CALC_FOUND_ROWS * FROM Users;
SELECT FOUND_ROWS(); ';
mysql_query($query);
Run Code Online (Sandbox Code Playgroud)
似乎PHP不喜欢传入两个查询.那么,我该怎么做呢?
从PHP版本5.3开始,PDO_MYSQL驱动程序一直受到支持PDO_MYSQLND.它引入了对多个查询的支持.
但是,如果SELECT传递了多个查询,我无法弄清楚如何获取两个结果集.两个查询都已执行,不能是第二个查询刚刚被转储.
$db->query("SELECT 1; SELECT 2;")->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
返回:
array(1) {
[0]=>
array(1) {
[1]=>
string(1) "1"
}
}
Run Code Online (Sandbox Code Playgroud)