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

kalder indlejret lagret procedure fra php

Fra PHP ser du kun på det FØRSTE resultatsæt. Fra kommandolinjen spytter den simpelthen alle resultatsæt ud.

Hvert lagret proc-kald, du har ovenfor, genererer et nyt unikt resultatsæt (forskellige felter mulige osv.)

For at rette op, kan du gå videre til det næste resultatsæt, hvis der findes et:

Brug odbc_next_result ( resource $result_id )

Alternativt, ved at bruge Mysqli kan du bruge disse tre kommandoer:

$result =$connection->multi_query("vælg * fra foo....");$result =$connection->store_result();$connection->next_result();

Ved at bruge din kode som et eksempel kan du pakke din kode, der udsender resultater i en do..while-løkke som denne:

$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




  1. SQL Server Express-alternativer ud over 2GB-grænsen

  2. PHP PDO:tegnsæt, sæt navne?

  3. Mange tabeller eller rækker, hvilken er mere effektiv i SQL?

  4. PSQLE Undtagelses- og låseproblem, når trigger tilføjes på tabellen