SQL_CALC_FOUND_ROWS / FOUND_ROWS() 在PHP中不起作用。

11 浏览
0 Comments

SQL_CALC_FOUND_ROWS / FOUND_ROWS() 在PHP中不起作用。

我在MySQL的SELECT语句中使用SQL_CALC_FOUND_ROWS,以获取没有LIMIT子句的情况下SELECT语句将返回的行数。

$sql = new mysqli('localhost', 'root', '');
$sql->select_db('mysql');
$s1 = $sql->query('select SQL_CALC_FOUND_ROWS * from db limit 0, 3');
$s2 = $sql->query('select FOUND_ROWS()');
if($row = $s2->fetch_row()) printf('%d/%d', $s1->num_rows, $row[0]);

在我使用的WinXP开发站点上,几周来每次都返回3/0。当我从我的站点使用另一个MySQL服务器时,也返回3/0。

在其他电脑上,相同的代码运行良好,并返回正确的数量(例如,如果在mysql.db表中有17条记录,则返回3/17)。每个XP电脑都具有相同的PHP/MySQL版本,并且在我的电脑上过去运行良好。

使用相同的SQL查询在MySQL Query Browser中可以获得正确的数量。

有没有人可以给我一个解决方案的想法,而不需要重新安装所有内容?

抱歉,我之前的请求非常不清楚。

0