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

Разрешеният размер на паметта от 134217728 байта е изчерпан (опитах се да разпределя 4294967296 байта)

Прочетох този доклад за грешка тук:https://bugs.php.net/bug. php?id=51386

Вашият проблем изглежда се случва, защото има longblob или longtext в колоните на таблицата.

longtext / longblob имат максимална дължина 4294967295 [4GB] затова mysqli се опитва да разпредели тази памет за буфера, за да е сигурен, че нищо не се губи. Предлагам ви да използвате mediumtext (16777215 [16MB] максимална дължина), това би трябвало да е достатъчно за всичко обикновено.

Актуализация: Тъй като този отговор е видял известна активност, добавям това решение от Phil_1984 (вижте коментарите)

=> Ако използвате $stmt->store_result() можете да използвате mysqli с longblob / longtext без да получите грешката.

-

Стар отговор: Предлагам ви или да промените колоната на друг тип (среден текст), или да използвате PDO (мисля, че няма този проблем). но ако искате да запазите колоната като дълъг текст, трябва да смените вашата mysql библиотека

Цитат от 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. MySQL низови функции (пълен списък)

  2. номер на порт на mysql сървъра

  3. Управление на MySQL с phpMyAdmin на Debian 5 (Lenny)

  4. Въведение във високата достъпност на базата данни за MySQL и MariaDB

  5. MySQL пагинация без двойна заявка?