Mysql
 sql >> Base de données >  >> RDS >> Mysql

Taille de mémoire autorisée de 134217728 octets épuisée (tentative d'allouer 4294967296 octets)

J'ai lu ce rapport de bogue ici :https://bugs.php.net/bug. php?id=51386

Votre problème semble se produire car il y a un longblob ou longtext dans les colonnes du tableau.

longtext / longblob avoir une longueur maximale de 4294967295 [4 Go] c'est pourquoi mysqli essaie d'allouer cette mémoire au tampon pour être sûr que rien n'est perdu. Je suggérerais que vous utilisiez mediumtext (longueur maximale de 16777215 [16 Mo]), cela devrait généralement suffire pour tout.

Mise à jour : Parce que cette réponse a vu une certaine activité, j'ajoute cette solution de Phil_1984 (voir commentaires)

=> Si vous utilisez $stmt->store_result() vous pouvez utiliser mysqli avec longblob / longtext sans obtenir l'erreur.

-

Ancienne réponse : Je vous suggère de changer la colonne en un autre type (mediumtext) ou d'utiliser PDO (je pense qu'il n'a pas ce problème). mais si vous voulez garder la colonne en longtext, vous devez changer votre bibliothèque mysql

Citation de PHP Dev :