Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF][ZendFramework][ZF/MySQl/PDO] Wywołanie procedury blokuje wszystko co dalej
Forum PHP.pl > Forum > PHP > Frameworki
fragles
Sprawa wygląda następująco - gdy wywołuję procedurę wszystko co jest związane z SQL-em (dokładniej z MySQL-em) obojetnie jakiego typu to by nie było zapytanie (SELECT, INSERT, UPDATE, DELETE, CALL, SHOW itp itd) powoduje błąd 2014
Cannot execute queries while other unbuffered queries are active

pytanie brzmi
Jak temu zaradzić? Bo czasami gdy np sesja jest w bazie to takie coś powoduje błąd

jak na razie resetuje połączenie po każdej procedurze, ale to zbyt optymalne nie jest - może ktos ma pomysł jak to zrobić, żeby było dobrze
pgrzelka
pokaż jak to masz zrobione
fragles
Cytat(pgrzelka @ 14.09.2009, 11:37:17 ) *
pokaż jak to masz zrobione


1)jest klasa bazowy do oberacji bazodanowych a w niej metoda

  1.  
  2. protected function pobierzRekordy($sql,$tryb)
  3. {try
  4. { if($tryb==1)
  5. return $this->_dbh->fetchAll($sql);
  6. elseif($tryb==2)
  7. return $this->_dbh->fetchRow($sql);
  8. }
  9. catch(Exception $e){ //tworzenie loga o błedzie do pliku } }[/list]
  10.  


2) są klasy pochodne - same zapytania sql, a w nich jest metoda z wywołaniem procedury

  1. public function pobierzRaport($typ,$limit,$offset,$kolumna,$sortowanie)
  2. {
  3. $sql='CALL raportowanie('.$typ.','.$limit.','.$offset.','.$kolumna.','.($sortowanie?'ASC':'DESC').')';
  4. return $this->pobierzRekordy($sql,1);
  5. }


mniej więcej tak sie to odbywa

jeśli jest procedura to wszystko co poniżej jest błędem 2014
NuLL
RTFM !

  1. $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
fragles
no to też mam

  1. $dbconf = new Zend_Config_Ini('./application/config/config.ini','database');
  2. $db = Zend_Db::factory($dbconf->db->adapter, $dbconf->db->config->toArray());
  3. $db->getConnection()->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
  4. Zend_Registry::set('db', $db);


a i tak nie gada jak trzeba i muszę resetować połączenie - chyba, że cos nie tak robię z atrybutami połączenia?
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.