Mysql
 sql >> Datenbank >  >> RDS >> Mysql

verschachtelte gespeicherte Prozedur von PHP aufrufen

Von PHP aus betrachten Sie nur die ERSTE Ergebnismenge. Von der Kommandozeile aus spuckt es einfach alle Ergebnismengen aus.

Jeder gespeicherte Prozessaufruf, den Sie oben haben, generiert eine neue eindeutige Ergebnismenge (verschiedene Felder möglich usw.)

Um das Problem zu beheben, können Sie zur nächsten Ergebnismenge wechseln, sofern vorhanden:

Verwenden Sie odbc_next_result ( resource $result_id )

Alternativ können Sie mit Mysqli diese drei Befehle verwenden:

$result =$connection->multi_query("select * from foo....");$result =$connection->store_result();$connection->next_result();

Wenn Sie Ihren Code als Beispiel verwenden, können Sie Ihren Code, der Ergebnisse ausgibt, in eine do..while-Schleife wie diese einschließen:

$result= $mysqli->multi_query("SELECT first_id,second_id from pair_find");

do {
  $result = $mysqli->store_result();

  while($row = mysqli_fetch_array($result, MYSQLI_ASSOC))
  {
     print_r($row);
  }
} while ($mysqli->next_result());

http://php.net/manual/en/function.odbc -nächstes-ergebnis.php

http://php.net/manual/en/mysqli.next-result .php