sql >> Databáze >  >> RDS >> Mysql

Povolená velikost paměti 134217728 bajtů je vyčerpána (pokuseno alokovat 4294967296 bajtů)

Tuto zprávu o chybě jsem četl zde:https://bugs.php.net/bug. php?id=51386

Zdá se, že k vašemu problému došlo, protože existuje longblob nebo longtext ve sloupcích tabulky.

longtext / longblob mají maximální délku 4294967295 [4GB] proto se mysqli pokouší alokovat tuto paměť pro vyrovnávací paměť, aby bylo jisté, že se nic neztratí. Navrhoval bych, abyste použili mediumtext (16777215 [16MB] max. délka), to by mělo obvykle stačit na všechno.

Aktualizace: Protože tato odpověď zaznamenala nějakou aktivitu, přidávám toto řešení od Phil_1984 (viz komentáře)

=> Pokud používáte $stmt->store_result() můžete použít mysqli s longblob / longtext aniž by došlo k chybě.

-

Stará odpověď: Navrhuji, abyste buď změnili sloupec na jiný typ (mediumtext) nebo použili PDO (myslím, že to nemá problém). ale pokud chcete zachovat sloupec jako dlouhý text, musíte přepnout svou knihovnu mysql

Citace z PHP Dev:



  1. Strategie mapování více polí v jedné tabulce na jedno pole v jiné tabulce

  2. Vložení SQL dotazu do funkce PHP

  3. Chyba v knihovně MySQL pro Node.js

  4. Při rozdělování pevné hodnoty do zemí na základě denního podílu z příjmů vylučte určité hodnoty