Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][ZF] Blad przy pobieraniudanych
Forum PHP.pl > Forum > Przedszkole
Piotrwusek
Witam,

Uzywam ZF dla swojej aplikacji. Wszystko bylo ok, az nagle baza danych zrobila sie duza i przy pobieraniu danych przez Zend Paginatora wyskakuje taki blad:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2013 Lost connection to MySQL server during query' in /library/Zend/Db/Statement/Pdo.php:228 Stack trace: #0 /library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array) #2 /library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) #3 /library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array) #4 /library/Zend/Db/Select.php(686): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select)) #5 /library/Zend/Paginator/Adapter/DbSelect.php(142): Zend_Db_Select->query(2) #6 /library/Zend/Paginator/Adapter/DbSelect.php(183): Zend_Paginator_Adapter_DbSelect->setRowCount(Object(Zend_Db_Table_Select)) #7 [internal function]: Zend_Paginator_Adapter_DbSelect->count() #8 /library/Zend/Paginator.php(534): count(Object(Zend_Paginator_Adapter_DbTableSelect)) #9 /library/Zend/Pag in /library/Zend/Db/Statement/Pdo.php on line 234

Ustawiam limit ilosci pobieranych danych w zapytaniu, ale nie pomaga.
Turson
http://stackoverflow.com/a/16586056
Piotrwusek
Dzieki. wink.gif Zwieksznie czasu oczywiscie pomoze doraznie. wink.gif

Jednka poszukuje rozwiazania jak zbudowac zapytanie przy uzyciu zend paginatora aby ograniczyc pobieranie calej bazy danych. Ustawienie takich wartosci jak LIMIT w zapytaniu sql nie pomaga ;/

Aktualnie moje zapytanie w ZF wyglada nastepujaco: [dziala ale strasznie dlugo sie laduje]. Czy mozna to jakos zoptymalizowac

  1. $adapter = new Zend_Paginator_Adapter_DbTableSelect($sql);
  2. $adapter->setRowCount($users->select()->from('tabelka', array(Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => 'id')));
  3. $paginator = new Zend_Paginator($adapter);
  4. $paginator->setItemCountPerPage(30);


Rozwiazanie

  1. $sql = $db -> ... -> limit (100);
  2. $paginator = Zend_Paginator::factory($users->fetchAll($sql));
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.