0

Tengo una tabla en una base de datos, la cual tiene cerca de 10mil registros.

El tema es que cuando hago la consulta de la siguiente manera me trae bien los datos:

$query="SELECT * FROM productos ORDER BY id DESC limit 1000";
    $resultado=metodoGet($query);
    echo json_encode($resultado->fetchAll());  

Pero cuando le pongo un límite mayor a 2000 o "sin límite" no me trae los datos:

Así por ejemplo:

$query="SELECT * FROM productos ORDER BY id";
        $resultado=metodoGet($query);
        echo json_encode($resultado->fetchAll());       

Calculo q es por una cuestión de "masividad", como lo resuelvo? el json debe ser uno solo.

  • Me parece que esta respuesta de @A.Cedano te puede dar un poco de luz al respecto https://es.stackoverflow.com/questions/184341/diferencia-entre-fetch-y-fetchall-en-php – BetaM Nov 25 '20 at 15:57
  • 1
    Tienes que traer todos los campos? Podrías probar primero a hacer un select de ciertos campos y ver cómo te llegan. Sino, también puedes ir haciendo varias consultas con Limit, y parar cuando te devuelva menos de las esperadas... – Jakala Nov 25 '20 at 15:58
  • Si ejecutas la query en la base de datos, igual tienes el problema ??? – Excorpion Nov 25 '20 at 18:28
  • Es raro necesitar miles de registros de golpe. ¿Hay algo que lo justifique? Si es así, supongo que deberá ser algo muy puntual. Si por ejemplo necesitas un solo JSON con todos esos registros es mejor pensar en otro tipo de solución, como generarlo a un nivel más bajo (en línea de comandos por ejemplo). De necesitarlos a nivel de PHP podrías pensar en construir el json por partes, como una especie de paginación que se va agregando al archivo. Eso por un lado, por otro, puede que tu propia tabla esté mal optimizada, por ejemplo, ¿la consulta se ejecuta con fluidez en el SGBD mismo? – A. Cedano Nov 25 '20 at 18:46

0 Answers0