Apunhalar no escuro:algumas de suas linhas de banco de dados contêm caracteres não ASCII (por exemplo, ü, é e outros). Sua conexão com o banco de dados está definida como
latin1 , portanto, os dados não são codificados em UTF-8. json_encode requer dados codificados em UTF-8. Se você buscar linhas suficientes, haverá linhas com esses dados não UTF-8 e json_encode falha. Com poucas linhas suficientes, você não atinge essas linhas problemáticas. Teste isso produzindo
echo json_last_error_msg(); após json_encode . Defina sua conexão de banco de dados como UTF-8. Veja aqui como fazer isso:UTF-8 até o fim
O motivo pelo qual seu navegador reclama de JSON inválido quando você inclui um
print_r é simples:porque o PHP gera muito lixo que não é JSON, que o navegador não pode decodificar como JSON.