
PHP/mysqli でストアド プロシージャを使用して複数の結果セットを取得する
PHP/MySQLi で複数の結果セットを使用してストアド プロシージャを実行するには注意が必要です取り扱い。ストアド プロシージャの実行後に 2 番目の結果セットに進むには、次の手順を実行する必要があります:
-
Use mysqli_stmt_execute: mysqli_stmt_execute.
-
を使用してストアド プロシージャを実行します。最初の結果セットをフェッチします: mysqli_stmt_get_result を呼び出して最初の結果セットを取得し、fetch_assoc、fetch_array、または fetch_row を使用してそのデータを読み取ります。
-
次の結果セットに移動します: 読み取り後最初の結果セットの場合、mysqli_stmt_next_result を呼び出して次の結果セットに移動します。
-
2 番目の結果セットをフェッチします。 mysqli_stmt_get_result を再度呼び出して 2 番目の結果セットを取得し、そのデータを読み取ります。
PHP/MySQLi を使用したコード例を次に示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <code class = "php" > $stmt = mysqli_prepare( $db , 'CALL multiples(?, ?)' );
mysqli_stmt_bind_param( $stmt , 'ii' , $param1 , $param2 );
mysqli_stmt_execute( $stmt );
$result1 = mysqli_stmt_get_result( $stmt );
while ( $row = $result1 ->fetch_assoc()) {
printf( "%d\n" , $row [ 'id' ]);
}
mysqli_stmt_next_result( $stmt );
$result2 = mysqli_stmt_get_result( $stmt );
while ( $row = $result2 ->fetch_assoc()) {
printf( "%d\n" , $row [ 'id' ]);
}
mysqli_stmt_close( $stmt );</code>
|
ログイン後にコピー
このコードは、指定されたストアド プロシージャの両方の結果セットからデータを正常に取得して出力します。
以上がPHP/mysqli でストアド プロシージャから複数の結果セットを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。