sql >> Base de Datos >  >> RDS >> Mysql

llamando al procedimiento almacenado anidado desde php

Desde PHP, solo está mirando el PRIMER conjunto de resultados. Desde la línea de comandos, simplemente escupe todos los conjuntos de resultados.

Cada llamada de proceso almacenada que tiene arriba está generando un nuevo conjunto de resultados único (diferentes campos posibles, etc.)

Para solucionarlo, puede pasar al siguiente conjunto de resultados, si existe:

Use odbc_next_result ( resource $result_id )

Alternativamente, usando Mysqli puede usar estos tres comandos:

$resultado =$conexión->multi_consulta("select * from foo....");$resultado =$conexión->store_result();$conexión->next_result();

Usando su código como ejemplo, puede envolver su código que genera resultados dentro de un bucle do...while como este:

$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 -siguiente-resultado.php

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