Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zulässige Speichergröße von 134217728 Bytes erschöpft (versucht, 4294967296 Bytes zuzuweisen)

Ich habe diesen Fehlerbericht hier gelesen:https://bugs.php.net/bug. php?id=51386

Ihr Problem scheint aufzutreten, weil es einen longblob gibt oder longtext in den Spalten der Tabelle.

longtext / longblob haben eine maximale Länge von 4294967295 [4GB] Deshalb versucht mysqli, diesen Speicher für den Puffer zuzuweisen, um sicherzustellen, dass nichts verloren geht. Ich würde vorschlagen, dass Sie mediumtext verwenden (16777215 [16MB] maximale Länge), das sollte normalerweise für alles reichen.

Aktualisierung: Da diese Antwort einige Aktivitäten gesehen hat, füge ich diese Lösung von Phil_1984 hinzu (siehe Kommentare)

=> Wenn Sie $stmt->store_result() verwenden Sie können mysqli mit longblob verwenden / longtext ohne den Fehler zu erhalten.

-

Alte Antwort: Ich schlage vor, dass Sie entweder die Spalte in einen anderen Typ (Mediumtext) ändern oder PDO verwenden (ich denke, es hat dieses Problem nicht). aber wenn Sie die Spalte als Langtext behalten wollen, müssen Sie Ihre MySQL-Bibliothek wechseln

Zitat von PHP Dev: