Chyba při table()->count()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vymak
- Člen | 92
Ahoj, narazil jsem na zajímavý problém.
Potřebuji z jedné tabulky zjistit počet záznamů. Počet záznamů
v tabulce je zhruba 4 000 000.
Pokud ale zavolám dotaz:
$this->db->table('VersionData')->count();
Dostanu chybu:
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 24 bytes) in C:\dev\localhost_www\vendor\nette\database\src\Database\ResultSet.php on line 160
Když ale použiju alternativní dotaz tak vše funguje bez problémů.
$this->db->query('SELECT COUNT(*) FROM VersionData')->fetch();
Jen pro upřesnění používám databázový server Microsoft SQL Server
2012 a PHP 5.5.22, Apache 2.4.12.
Čím to může být?? Je to bug nebo jen chyba u mě?
EDIT:
Verze Nette 2.3.0
Editoval vymak (10. 3. 2015 20:58)
- vymak
- Člen | 92
Thanks for solution, it works perfect.
Other problem is I can´t specify column, because this method is part of other method which check counts from others table. And every table doesn´t containts column id.
Something as:
foreach ($tables as $table) {
$count = $this->db->table($table)->count();
}
I hope you understand me :D My english is not good :D
Editoval vymak (10. 3. 2015 21:27)