Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wywołanie procedury składowej przez mysqli w php
Forum PHP.pl > Forum > Bazy danych > MySQL
genger
Mam procedurę składową w MySql, która działa w konsoli. Muszę ją wywołać (zwraca selecta jakiegoś tam wypracowanego w bólach 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)
drucik
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.