Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Existe algum limite de memória para o método json_encode()?


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.