Mysql
 sql >> Database >  >> RDS >> Mysql

chiamando la procedura memorizzata nidificata da php

Da PHP stai solo guardando il PRIMO set di risultati. Dalla riga di comando, sputa semplicemente tutti i set di risultati.

Ogni chiamata proc memorizzata che hai sopra sta generando un nuovo set di risultati univoco (campi diversi possibili ecc.)

Per correggere, puoi passare al successivo set di risultati, se ne esiste uno:

Usa odbc_next_result ( resource $result_id )

In alternativa, usando Mysqli puoi usare questi tre comandi:

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

Usando il tuo codice come esempio, puoi avvolgere il tuo codice che sta generando risultati all'interno di un ciclo do..while in questo modo:

$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 -next-result.php

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