Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy istnieje limit pamięci dla metody json_encode()?

Wkrocz w ciemność:niektóre wiersze bazy danych zawierają znaki spoza zestawu ASCII (np. ü, é itp.). Twoje połączenie z bazą danych jest ustawione na latin1 , więc dane nie są zakodowane w UTF-8. json_encode wymaga danych zakodowanych w UTF-8. Jeśli pobierzesz wystarczającą liczbę wierszy, będą tam wiersze z takimi danymi innymi niż UTF-8, a json_encode zawodzi. Przy niewielkiej liczbie rzędów zdarza się, że nie trafisz w te problematyczne.

Przetestuj to, wypisując echo json_last_error_msg(); po json_encode .

Ustaw połączenie z bazą danych na UTF-8. Zobacz, jak to zrobić:UTF-8 przez cały czas

Powód, dla którego Twoja przeglądarka skarży się na nieprawidłowy JSON, gdy dołączasz print_r jest proste:ponieważ wtedy PHP generuje dużo śmieci, które nie są w formacie JSON, których przeglądarka nie może zdekodować jako JSON.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odwoływanie się do kluczy obcych MySQL

  2. Jak dołączyć do trzech stołów w Codeigniter

  3. Jak za pomocą PDO mogę się upewnić, że instrukcja UPDATE zakończyła się powodzeniem?

  4. Lepsze IDE PHP, MySql, HTML i JavaScript

  5. Jak zmienić strefę czasową serwera MySQL