MySQL MEDIUMTEXT PHP Ölümcül hata neden olur: 8388608 bayt İzin bellek boyutu tükendi

3 Cevap php

Ben mysqli kütüphanesini sarar benim kendi php veri nesnesi sınıf var. Bu metin dahil olmak üzere çoğu veritiplerini, taşıma çalışıyor. En kısa sürede ben MEDIUMTEXT metinden bir tablo sütununu değiştirmek gibi, ben bu soru başlığında anlatılan hata alıyorum. Ben birkaç paylaşılan barındırma ortamlarında benim php komut test ettik, ve ben onlardan sadece biri bu hatayı alabilirsiniz.

MEDIUMTEXT ve LongText gerçekten o kadar çok bellek kullanıyor mu?

Benim php sınıfları optimize başlayacak, ama ben doğru yolda olduğumu emin olmak istiyorum ..

3 Cevap

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html belirtilen MEDIUMTEXT 16777215 tutabilir

Php tarafından tanımlandığı gibi bu size bellek sınırından daha> gibi görünmektedir. Bu yüzden mantıklı.

MEDIUMTEXT ve LONGTEXT alanlar, potansiyel olarak, bu kadar bilgi alabiliyordu. Sadece kolon tip değişiyor, ya da metnin tam sıkışma sonra sütun türünü değişiyor? O eski ise, benim tahminim nesneler / diziler / somethings bir demet kadar bina bulunuyor ve PHP'nin varsayılan bellek tavana vuruyorsun bazı kaçmaya döngü / yineleme var olacaktır.

Sen php.ini üzerinden PHP için ayrılan bellek miktarını kontrol edebilirsiniz, ya da çalışma zamanında değerlerini ayarlamak için ini_set işlevini kullanabilirsiniz.

ini_set("memory_limit","12M");

Bu barındırma sağlayıcı muhtemelen PHP bir script bellek 8 megabayt izin yalnızca belirledi.

memory_limit = 8M; Bir komut dosyası tüketebilir azami bellek miktarını

Bu (phpinfo kullanarak ayarlanır ne) kontrol edebilirsiniz, aşağıdaki ile bir komut dosyası oluşturmak, yüklemek ve ona web tarayıcınızı (potansiyel hassas bilgileri ele veriyor gibi bir kez yapılır kaldırmak emin olun):

phpinfo ()

>

Dibe doğru "memory_limit" arayın. Bu 8 megabayt olarak ayarlanırsa bu senin sorunun.