Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] stored procedures, jak uruchomić i pobrać wynik uruchomienia
jastu
post
Post #1





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


Napisałem kilka procedur by zwiększyć przejrzystość bazy i aplikacji w kontekście najbliższych zmian ale .... nie mogę tych procedur uruchamiać z poziomu php.

Poszukałem i znalazłem kilka niedzialających w moim przypadku rozwiązań:



1.Sposób połączenia z bazą (nie wiem co oznacza flaga 131074)
  1. <?php
  2. mysql_connect($this->hostname, $this->username, $this->password, 131074);
  3. ?>

nie pozwala wywołać
  1. <?php
  2. mysql_query(' set names "utf-8" ');
  3. ?>

ponieważ
Kod
<p>Error Number: 2014</p><p>Commands out of sync; you can't run this command now</p>


2. Łączymy się typowo
  1. <?php
  2. mysql_connect($this->hostname, $this->username, $this->password);
  3. ?>

i wtedy
Kod
Error Number: 1312

PROCEDURE db_core_.getForumLast can't return a result set in the given context


Na serwerze nie ma mysqli !
a nie chcę przenosić tych procedur do php ze względu na ich skomplikowanie. Jeśli jest komuś znane rozwiązanie tego problemu to bedę przesadnie wdzięczny. Pzdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jastu
post
Post #2





Grupa: Zarejestrowani
Postów: 382
Pomógł: 0
Dołączył: 29.11.2005
Skąd: :jestem();

Ostrzeżenie: (0%)
-----


Witam,
dzięki za zainteresowanie i naświetlenie problemu. Drążąc problem dalej, doszedłem do wniosku że w aplikacji która podczas odsłony wali do bazy 20 zapytań mógł wystąpić problem kolejności w jakiej mogły być wykonane. Od czego zależy ten kontekst wykonania zapytania ? Poniżej zamieszczam kod, który zwraca identyczne błędy jak aplikacja a wykonuje tylko jedno zapytanie. Problem nadal istnieje (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) Procedura działa prawidłowo w pozostałych klientach.

  1. <?php
  2. $con = mysql_connect('localhost', 'root', 'pass');
  3.  
  4. $res = mysql_db_query('selected_db', 'call procedure(1)',$con);
  5.  
  6. var_dump($res); // false
  7.  
  8. echo mysql_error(); // PROCEDURE selected_db.procedure can't return a result set in the given context
  9.  
  10. while($res = mysql_fetch_array($res,MYSQL_ASSOC))
  11. {
  12. var_dump($res); // tu wiadomo że już nic nie będzie ;)
  13. }
  14. ?>


Ekhm... czy u wszystkich działa tylko u mnie nie chce ?

Ten post edytował jastu 29.08.2007, 23:20:34
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 04:24