sql >> Database teknologi >  >> RDS >> Mysql

Tilladt hukommelsesstørrelse på 134217728 bytes opbrugt (forsøgt at allokere 4294967296 bytes)

Jeg læste denne fejlrapport her:https://bugs.php.net/bug. php?id=51386

Dit problem ser ud til at ske, fordi der er en longblob eller longtext i kolonnerne i tabellen.

longtext / longblob have en maksimal længde på 4294967295 [4GB] det er derfor, mysqli forsøger at allokere den hukommelse til bufferen for at være sikker på, at intet går tabt. Jeg vil foreslå, at du bruger mediumtext (16777215 [16MB] maks. længde), det burde normalt være nok til alt.

Opdatering: Fordi dette svar har set noget aktivitet, tilføjer jeg denne løsning fra Phil_1984 (se kommentarer)

=> Hvis du bruger $stmt->store_result() du kan bruge mysqli med longblob / longtext uden at få fejlen.

-

Gammelt svar: Jeg foreslår, at du enten ændrer kolonnen til en anden type (mediumtekst) eller bruger PDO (jeg tror, ​​den ikke har det problem). men hvis du vil beholde kolonnen som lang tekst, skal du skifte dit mysql-bibliotek

Citat fra PHP Dev:



  1. Best Practices for Multi-Language Database Design

  2. Konvertering af Long til Varchar2

  3. MySQL INSERT data bliver ikke gemt i korrekt db, kun midlertidigt?

  4. Postgres og indekser på fremmednøgler og primærnøgler