![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Na serwerze Ms SQL 2000 mam procedurę, ktorej zadaniem jest zwrócenie liczby za zakresu(1,2,3,4) w zależności od otrzymanego wyniku.
Potrzebuje pobrać ta wartość, ale niestety mam bardzo mala wiedze o języku php i nie za bardzo wiem jak się do tego zabrać. Próbowalem uzywac "print 3" w procedurze i potem z poziomu php uzywalem funkcji mssql_get_last_message(); Niby działa, ale nie wydaje mi się, żeby byla to najefektywniejsza metoda. Zastanawiam się nad [b]mssql_result[/b] ( resource $result , int $row , mixed $field ), ale nie wiem skąd mam znać pole $field skoro generuje tylko liczbę a nie tablicę;/ Samo zainicjowanie i uruchomienie procedury działa poprawnie (mssql_execute() zwraca true) Z gory dziekuje za pomoc i przepraszam jeśli okaże się że to bylo laickie pytanie;) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
w field daj 0?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
$row=1;
$field=0; echo mssql_result( $test , $row , $field ); Niestety nic nowego nie wyświetla. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
a z $row = 0 ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
$row=0;
$field=0; mssql_result( $test , $row , $field ); echo mssql_get_last_message(); dodalem mssql_get_last_message(); i co ciekawe nie ma zadnej dodatkowej odpowiedzi z serwera. Tak jakby w ogole nie wykonywal funkcji mssql_result( $test , $row , $field ); |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
string mssql_result ( resource $result , int $row , mixed $field );
result The result resource that is being evaluated. This result comes from a call to mssql_query(). Czyli: zrobiłeś mssql_query()? Ten post edytował Exek 10.09.2008, 11:59:37 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast tego używam mssql_execute().
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hmm... ok racja, zapomniałem, że chcesz użyć procedury. Nie mam doświadczenia z mssql ale:
mixed mssql_execute ( resource $stmt [, bool $skip_results ] ) z tego co mówi dokumentacja to jeśli Twoja procedura coś zwraca to pojawi się to na wyjściu funkcji mssql_execute; Zrób może $result = mssql_execute(...); var_dump($result); Ten post edytował Exek 10.09.2008, 12:08:11 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Korzystam już takiego przypisania, bo zauwazylem że zwraca wartość boolean.
Na wszelki wypadek sprawdzilem ta funkce od ciebie: $test=mssql_execute($sp); var_dump($test); Na ekranie: bool(true) ;/ |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Kurcze racja, przecież procedury nie zwracają wartości. Tzn. zmień procedurę na funkcję i daj tam returna. Jest to możliwe w mssql?
|
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
~Exek w PHP nie ma czegos takiego jak procedura. W PHP są tylko funcje. Nawet jeśli nie skorzystasz z return to funkcja i tak bedzie zwracała NULL.
Nie prowadzaj więc pojęć, których tu nie ma. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 10 Dołączył: 16.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
@mike:
mistrzu, czytaj chociaż pierwszego posta: "Na serwerze Ms SQL 2000 mam procedurę" |
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 10.09.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuję za pomoc. Problem rozwiązany.
Jesli kogoś interesuje jak to zrobiłem to tu jest kod: $returnValue = 0; mssql_bind($sp, "@return_value", $returnValue, SQLINT1, TRUE, FALSE); // true sprawia, ze parametr jest traktowany jako output mssql_execute($sp); echo $returnValue; |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 19:50 |