Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie mogę wywołać procedury w PHP
zwisio
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Bielsko-Biała

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


Mam następującą procedurę:

Kod
DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`CheckLogin` $$
CREATE PROCEDURE `CheckLogin`(IN login varchar(20))
begin
declare statL int;
select count(*) into statL from tUserList where login = login;
select statL;
end $$

DELIMITER;


Następnie wywołuję ją w php poleceniem

  1. <?php
  2. $query = "call test.CheckLogin('jakiś_login')";
  3.  
  4. $q = mysql_query($query);
  5. ?>


i otrzymuję komunikat:

Kod
1312: PROCEDURE test.CheckLogin can't return a result set in the given context


Co trzeba zrobić, aby otrzymać zbiór wynikowy?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Z góry dziękuję za pomoc

Ten post edytował zwisio 20.12.2005, 21:33:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Moze takie cos?

  1. SELECT count(*)
  2. INTO statL FROM tUserList WHERE login = login;
  3. RETURN statL;
Go to the top of the page
+Quote Post
zwisio
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Bielsko-Biała

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


Niestety nie, muszę zrobić procedurę, ponieważ funkcje nie zwracają recordsetów (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Ale w tym przypadku moze byc zwykla funkcja ktora zwraca 1 lub 0 w zaleznosci czy istnieje.
Bo zgodnie z tym co napisales to dostajesz 1 wartosc.

Jesli chesz przez procedure to zgodnie z tym co pisze w manualu musisz trosze inaczej zadeklarowac http://dev.mysql.com/doc/refman/5.1/en/create-procedure.html
Go to the top of the page
+Quote Post
zwisio
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 30.04.2004
Skąd: Bielsko-Biała

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


już rozwiązałem ten problem, trzeba połączyć się przez funkcjię myslqi_real_connect()

kod wygląda następująco:

  1. <?php
  2. $db = mysqli_init();
  3.  
  4. mysqli_options($db, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
  5. mysqli_options($db, MYSQLI_OPT_CONNECT_TIMEOUT, 5);
  6.  
  7. @mysqli_real_connect($db, MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
  8.  
  9. if ( mysqli_connect_errno() )
  10. {
  11. printf("DB Error: %sn", mysqli_connect_error());
  12. exit();
  13. }
  14. ?>
Go to the top of the page
+Quote Post

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: 26.12.2025 - 02:23