sql >> Databasteknik >  >> RDS >> Mysql

Finns det någon minnesgräns för metoden json_encode()?

Stå in i mörkret:några av dina databasrader innehåller icke-ASCII-tecken (t.ex. ü, é och sådant). Din databasanslutning är inställd på latin1 , så data är inte UTF-8-kodad. json_encode kräver UTF-8-kodad data. Om du hämtar tillräckligt många rader kommer det att finnas rader med sådan icke-UTF-8-data där, och json_encode misslyckas. Med tillräckligt få rader råkar du inte träffa de problematiska raderna.

Testa detta genom att mata ut echo json_last_error_msg(); efter json_encode .

Ställ in din databasanslutning till UTF-8. Se hur du gör det här:UTF-8 hela vägen igenom

Anledningen till att din webbläsare klagar på ogiltig JSON när du inkluderar en print_r är enkelt:för då skickar PHP ut mycket skräp som inte är JSON, som webbläsaren inte kan avkoda som JSON.



  1. Returnera en procentandel av en resultatuppsättning i SQL Server

  2. Varför kan jag inte tvinga Oracle 11g att förbruka fler processorer för en enda SQL-fråga

  3. Native JSON-stöd i MYSQL 5.7:vilka är fördelarna och nackdelarna med JSON-datatyp i MYSQL?

  4. hur beviljar man användarrättigheter på ett specifikt schema?