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

Kích thước bộ nhớ được phép là 134217728 byte đã cạn kiệt (đã cố gắng phân bổ 4294967296 byte)

Tôi đọc báo cáo lỗi này tại đây: https://bugs.php.net/bug. php? id =51386

Sự cố của bạn dường như xảy ra vì có longblob hoặc longtext trong các cột của bảng.

longtext / longblob có độ dài tối đa là 4294967295 [4GB] đó là lý do tại sao mysqli cố gắng cấp phát bộ nhớ đó cho bộ đệm để đảm bảo không có gì bị mất. Tôi khuyên bạn nên sử dụng mediumtext (16777215 [16MB] độ dài tối đa), thường là đủ cho mọi thứ.

Cập nhật: Vì câu trả lời này đã cho thấy một số hoạt động, tôi thêm giải pháp này từ Phil_1984 (xem nhận xét)

=> Nếu bạn sử dụng $stmt->store_result() bạn có thể sử dụng mysqli với longblob / longtext mà không gặp lỗi.

-

Câu trả lời cũ: Tôi khuyên bạn nên thay đổi cột thành một loại khác (văn bản trung gian) hoặc sử dụng PDO (tôi nghĩ rằng nó không có vấn đề đó). nhưng nếu bạn muốn giữ cột ở dạng văn bản dài, bạn phải chuyển đổi thư viện mysql của mình

Trích dẫn từ PHP Dev:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao bảng InnoDB của tôi có giá trị kỳ lạ cho số bản ghi?

  2. Chương trình của tôi không thể lưu trữ các giá trị trong MySQL bằng cách sử dụng trình kết nối mysql lib trong Python

  3. MySQL Loại bỏ dấu ngắt dòng ở cuối khỏi một cột

  4. nhóm theo tháng của trường dấu thời gian unix

  5. Mysql chọn để cập nhật - nó không khóa các hàng đích. Làm thế nào để tôi chắc chắn rằng nó không?