Uso SQL_CALC_FOUND_ROWS
en la instrucción SELECT de Mysql, para obtener el número de líneas que mi SELECT devolvería sin una cláusula LIMIT.SQL_CALC_FOUND_ROWS/FOUND_ROWS() no funciona en PHP
$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]);
En mi estación de desarrollo WinXP devuelve 3/0 cada vez durante varias semanas. Cuando uso otro servidor MySQL desde mi estación, devuelve 3/0 también. En otra PC el mismo código funciona bien, y devuelve el número correcto (3/17 por ejemplo, si tengo 17 registros en la tabla mysql.db). Cada PC XP tiene la misma versión PHP/Mysql, y funcionó bien en el pasado en mi PC Utilizando Mysql Query Browser con las mismas consultas SQL obtengo el número correcto.
¿Alguien podría darme una idea de la solución, sin volver a instalar todo?
Lo siento, mi solicitud anterior era muy poco clara.
¿Puede incluir su código PHP? ¿Está pidiendo definitivamente el recuento utilizando el mismo recurso de conexión de base de datos que el utilizado para la consulta? –
Su pregunta carece del error que se produce y del código que está utilizando, con el pulgar hacia abajo. – TravisO
@PaulDixon Gracias Paul! En nuestro código .net, siempre estamos creando nuevas conexiones así que tan pronto como leí su comentario, supe que ese debe ser mi problema. –