Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste un limite di memoria per il metodo json_encode()?

Pugnala nel buio:alcune delle righe del tuo database contengono caratteri non ASCII (ad es. ü, é e simili). La connessione al database è impostata su latin1 , quindi i dati non sono codificati in UTF-8. json_encode richiede dati codificati UTF-8. Se recuperi abbastanza righe, ci saranno righe con tali dati non UTF-8 e json_encode non riesce. Con poche righe sufficienti ti capita di non raggiungere quelle righe problematiche.

Provalo emettendo echo json_last_error_msg(); dopo json_encode .

Imposta la connessione al database su UTF-8. Guarda qui come farlo:UTF-8 fino in fondo

Il motivo per cui il tuo browser si lamenta di JSON non valido quando includi un print_r è semplice:perché quindi PHP emette molta spazzatura che non è JSON, che il browser non può decodificare come JSON.