sql >> Databáze >  >> RDS >> Mysql

Existuje nějaký limit paměti pro metodu json_encode()?

Bodnutí do tmy:některé řádky vaší databáze obsahují znaky jiné než ASCII (např. ü, é a podobně). Vaše připojení k databázi je nastaveno na latin1 , takže data nejsou kódována UTF-8. json_encode vyžaduje data v kódování UTF-8. Pokud načtete dostatek řádků, budou tam řádky s daty mimo UTF-8 a json_encode selže. S malým počtem řádků se stane, že se do těchto problematických řádků nedostanete.

Otestujte to zadáním echo json_last_error_msg(); za json_encode .

Nastavte připojení k databázi na UTF-8. Podívejte se, jak na to:UTF-8 až do konce

Důvod, proč si váš prohlížeč stěžuje na neplatný JSON, když zahrnete print_r je jednoduchý:protože pak PHP generuje spoustu odpadků, které nejsou JSON, které prohlížeč nemůže dekódovat jako JSON.



  1. Proveďte příkaz Vložit a vraťte vložené ID v SQL

  2. Jaké jsou některé způsoby přístupu k Microsoft SQL Server z Linuxu?

  3. Jak otevřít tabulku v návrhovém zobrazení v aplikaci Access

  4. Rozdělte řetězec mezerou a znakem jako oddělovač v Oracle pomocí regexp_substr