Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли ограничение на паметта за метода json_encode()?

Пробийте в тъмното:някои от редовете на вашата база данни съдържат знаци, които не са ASCII (например ü, é и други). Вашата връзка с базата данни е настроена на latin1 , така че данните не са кодирани с UTF-8. json_encode изисква UTF-8 кодирани данни. Ако извлечете достатъчно редове, там ще има редове с такива данни, различни от UTF-8, и json_encode не успява. С достатъчно малко реда ви се случва да не уцелите тези проблемни редове.

Тествайте това, като изведете echo json_last_error_msg(); след json_encode .

Задайте връзката на вашата база данни на UTF-8. Вижте тук как да го направите:UTF-8 докрай

Причината, поради която браузърът ви се оплаква от невалиден JSON, когато включите print_r е просто:защото тогава PHP извежда много боклук, който не е JSON, който браузърът не може да декодира като 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. SQL заявка за изчисляване на баланса по сметката

  2. Инсталиране на Percona XtraDB Cluster на CentOS 7

  3. MySQL целочисленото сравнение игнорира последващите алфа знаци

  4. MySQL 8 Общи изрази за таблица CTE

  5. Ограничение за размера на MySQL VARCHAR