wracam do tematu - bo nic w tej sprawiekonkretnego nie znalazłem, przeszukalem co mogłem i dal;ej jak nie wiem co robić tak nie wiem co robić

otóż jak wywoływana jest jako PIERWSZA procedura to nastepne zapytanie wywala się i jest błąd 2014 - jak na początku jest
SELECT (łącznie z funkcją), UPDTAE, INSERT to wszystko gada

ogólnie rzecz biorąc PIERWSZE ZAPYTANIE PO CALL WYWALA BŁĄD 2014

czemu i jak się tego pozbyć

mam xamppa - czyli php coś koło 5.2 mysql 5, PDO - jak to w xamppie

(co ciekawsze z pgplsql nie mialem takich problemów - może dlatego, że tam zapytanie nie zaczyna się od tego pieprzonego CALL)

jedynym wyjściem jest łączenie z bazą po każdym zapytaniu, ale to jest trochę mało wydajne - i ogólnie rozwiązanie do niczego

próbowałem znalezionych rozwiązań, ale nie działają - a coś takiego (nawet z tego forum)

  1. <?php
  2. setAttribute( PDO::ATTR_STATEMENT_CLASS, array( 'PDOStatementE', array($this) ));
  3. //nie będę cytował całego kodu, to tak na wypadek jakby ktoś chciał mnie pokierować w tą stronę
  4. ?>


powoduje taki rezultat


Połączenie zostało zresetowane
Połączenie z serwerem zostało zresetowane podczas wczytywania strony


jak będzie trzeba to oleje te całe procedury składowane i zrobie to standardowo po staremu - czyli zapytania w bazie, trochę wkurzyny jestem bo najpierw zrobiłem bazę, wszystko co trzeba - łacznie z zapytaniami (w funkcjach i procedurach) ucieszony, że teraz można takie coś podłączać gdzie bądź, bo napisanie CALL z argumentami jest prostsze niż SELECT z warunkami, a tutaj w PHP porażka taka

jak to zrobić, żeby było dobrze

ogólnie moja funkcja pytająca wygląda tak

  1. <?php
  2. protected function executeQuery($query,$type=2,$tryb=PDO::FETCH_BOTH)
  3.        {
  4.            $stmt= $this->_db ->prepare($query, array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
  5.            try
  6.            {
  7.                $stmt->execute();
  8.            }
  9.            catch (PDOException $e)
  10.            {
  11.                echo $query;    
  12.                print_r($e);
  13.            }    
  14.            if($type==1)
  15.                $this->_resArray=$stmt->fetchAll($tryb);
  16.            elseif($type==2)
  17.                $this->_resArray=$stmt->fetchRow($tryb);
  18.            elseif($type==3)
  19.                $this->_resArray=$stmt->rowCount();
  20.            $stmt -> closeCursor();
  21.            $stmt = null;
  22.            unset($stmt);
  23.            
  24.            //$this->reConnect();    
  25.            
  26.            return $this->getResArray();
  27.        }
  28. ?>


potem się to dziedziczy w klasie zapytań i to działa, do czasu gdy po CALL następuje kolejne zapytanie do bazy danych

może ktoś mi wyjaśnić, co i jak i dlaczego?