PDO fetchAll i Allowed memory

0

Witam.
O to jest mój kod:
http://code.google.com/p/xvweb/source/browse/trunk/%20xvweb/core/libraries/SQLDump.XVWeb.class.php

Chodzi dokładnie o linie

foreach($this->Date['XVweb']->DataBase->query('SELECT * FROM `'.$Table[0].'`;')->fetchAll(PDO::FETCH_ASSOC) as $SelectRow)

Błąd:

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 846956 bytes) in */core/libraries/SQLDump.XVWeb.class.php on line 28

Tabela waży 200mb. Jak pozbyć się tego defektu?

0

Albo czytaj porcjami lub sproboj ustawic wiekszy limit pamieci i czasu skryptu:

ini_set(“memory_limit”,”32M”);
set_time_limit(0);
 
0

to nie rozwiązanie ;< Wiem, mogę ustawić nawet ramy do 8gb, ale na serwerach są ograniczenia ;/ więc tego nie można zmienić.

Porcjami - to już w ostateczności. Lecz myślę że jest jakaś alternatywa do tego.

Chyba rozwiązałem problem:
kod:

$TableRows = $this->Date['XVweb']->DataBase->query('SELECT * FROM `'.$Table[0].'`;');  
				while ($SelectRow = $TableRows->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_NEXT)) // While loop with records / Pętla z reordami tabeli
			
0

jak masz srv wspoldzielony to tak to bywa ;p
porcjami to raczej najlepsze wyjscie...i nie zajedziesz bazy i srv przy wiekszych ilosciach danych...

0
ebreo napisał(a)

jak masz srv wspoldzielony to tak to bywa ;p
porcjami to raczej najlepsze wyjscie...i nie zajedziesz bazy i srv przy wiekszych ilosciach danych...

Owszem. Osobiście mogę bez problemu zwiększyć limit. Tylko to jest CMS open source, gdzie każdy może zainstalować gdzie chce, na - prawie - każdym serwerze. Nie mogę w tej sprawie być egoistą, by tylko u mnie działało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1