Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có giới hạn bộ nhớ nào cho phương thức json_encode () không?

Đập vào bóng tối:một số hàng trong cơ sở dữ liệu của bạn chứa các ký tự không phải ASCII (ví dụ:ü, é, v.v.). Kết nối cơ sở dữ liệu của bạn được đặt thành latin1 , vì vậy dữ liệu không được mã hóa UTF-8. json_encode yêu cầu dữ liệu được mã hóa UTF-8. Nếu bạn tìm nạp đủ hàng, sẽ có các hàng có dữ liệu không phải UTF-8 như vậy trong đó và json_encode không thành công. Với đủ ít hàng, bạn sẽ không gặp phải những hàng có vấn đề đó.

Kiểm tra điều này bằng cách xuất ra echo json_last_error_msg(); sau json_encode .

Đặt kết nối cơ sở dữ liệu của bạn thành UTF-8. Xem cách thực hiện tại đây: UTF-8 hoàn toàn thông qua

Lý do tại sao trình duyệt của bạn phàn nàn về JSON không hợp lệ khi bạn bao gồm print_r rất đơn giản:bởi vì sau đó PHP tạo ra rất nhiều rác không phải là JSON, mà trình duyệt không thể giải mã thành 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. Làm thế nào để tạo chỉ mục FULLTEXT trên nhiều cột?

  2. Cách cập nhật cơ sở dữ liệu mysql mà không cần tải lại trang

  3. Làm cách nào để lấy kích thước bảng MySQL cho các bảng trong cơ sở dữ liệu?

  4. Thêm cột mới vào cơ sở dữ liệu wordpress

  5. Làm thế nào để thực hiện chức năng kết nối mysqli?