Stik ind i mørket:Nogle af dine databaserækker indeholder ikke-ASCII-tegn (f.eks. ü, é og sådan). Din databaseforbindelse er indstillet til latin1
, så dataene er ikke UTF-8-kodede. json_encode
kræver UTF-8-kodede data. Hvis du henter nok rækker, vil der være rækker med sådanne ikke-UTF-8-data derinde, og json_encode
fejler. Med få rækker nok rammer du tilfældigvis ikke de problematiske rækker.
Test dette ved at udskrive echo json_last_error_msg();
efter json_encode
.
Indstil din databaseforbindelse til UTF-8. Se her, hvordan du gør det:UTF-8 hele vejen igennem
Grunden til, at din browser klager over ugyldig JSON, når du inkluderer en print_r
er simpelt:for så udsender PHP en masse skrald, som ikke er JSON, som browseren ikke kan afkode som JSON.