![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 13.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam procedurę składową w MySql, która działa w konsoli. Muszę ją wywołać (zwraca selecta jakiegoś tam wypracowanego w bólach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) w PHP najlepiej przy użyciu mysqli (taki mam projekt i własną klasę do połączeń w oparciu o mysqli). Nie mogę znaleźć przykładu na połączenie z bazą z opcją CLIENT_MULTI_STATEMENTS lub CLIENT_MULTI_RESULTS właśnie przy użyciu mysqli i tu jest problem. Proszę o pomoc. Może ktoś ma inny pomysł.
(PS. Wywołanie procedury w phpmyadminie zwraca: #1312 - PROCEDURE delegacje.statystyka_sum_proc can't return a result set in the given context) Ten post edytował genger 6.01.2009, 13:08:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 4 Dołączył: 31.12.2008 Skąd: Bytom Odrzański Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Hmm, nie musisz używać parametru CLIENT_MULTI_STATEMENTS ani CLIENT_MULTI_RESULTS. Łączysz się tylko z bazą danych za pomocą mysqli: Kod $link = mysqli_connect('host', 'login', 'haslo', 'baza'); if (mysqli_multi_query($link, "CALL procedura(param1, param2)")) { if ($result = mysqli_store_result($link)) { while ($row = mysqli_fetch_row($result)) { // przetwarzanie wiersza } } } Jeżeli funkcja zwraca więcej niż jeden ResultSet, to możesz użyć funkcji: Kod if (mysqli_more_results($link)) // sprawdzenie czy sa nastepne dane { mysqli_next_result($link); // ustawienie na nastepny resultset $result = mysqli_store_result($link); // pobranie nastepnego resultatu i pozniej tak samo jak wyzej więcej informacji na temat mysqli możesz znaleść na stronach manuala php: http://pl.php.net/manual/pl/mysqli.multi-query.php Ten post edytował drucik 7.01.2009, 01:04:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 00:32 |