sql >> Base de Datos >  >> RDS >> Mysql

¿Hay algún límite de memoria para el método json_encode()?

Apuñalar en la oscuridad:algunas de las filas de su base de datos contienen caracteres que no son ASCII (por ejemplo, ü, é y similares). Su conexión a la base de datos está establecida en latin1 , por lo que los datos no están codificados en UTF-8. json_encode requiere datos codificados en UTF-8. Si obtiene suficientes filas, habrá filas con datos que no sean UTF-8 allí y json_encode falla Con pocas filas suficientes, no llegas a esas filas problemáticas.

Pruebe esto generando echo json_last_error_msg(); después de json_encode .

Establezca la conexión de su base de datos en UTF-8. Vea aquí cómo hacerlo:UTF-8 hasta el final

La razón por la que su navegador se queja de JSON no válido cuando incluye un print_r es simple:porque entonces PHP genera mucha basura que no es JSON, que el navegador no puede decodificar como JSON.