MySQL ストアド プロシージャを使用して PHP の OUT パラメータにアクセスする
PHP を使用して MySQL のストアド プロシージャを操作する場合、 「OUT」パラメータは、ドキュメントが限られているため、難しい場合があります。ただし、このプロセスは mysqli PHP API を利用することで可能です。
mysqli の使用
1 つの IN パラメータ (「i」) を持つ「myproc」という名前のストアド プロシージャを考えてみましょう。および 1 つの OUT パラメータ (「j」)。 PHP を使用して「j」の値を取得するには、次の手順に従います。
$mysqli = new mysqli( "HOST", "USR", "PWD", "DBNAME" );
$ivalue=1;
// Execute the stored procedure and store the result.
$res = $mysqli->multi_query( "CALL myproc($ivalue,@x);SELECT @x" );
if( $res ) {
$results = 0;
// Iterate through the results.
do {
if ($result = $mysqli->store_result()) {
// Display the result header.
printf( "<b>Result #%u</b>:<br/>", $results );
// Fetch and display the OUT parameter value.
while( $row = $result->fetch_row() ) {
foreach( $row as $cell ) {
echo $cell, " ";
}
}
$result->close();
if( $mysqli->more_results() ) echo "<br/>";
}
} while( $mysqli->next_result() );
}
// Close the mysqli connection.
$mysqli->close();
この例では、「j」パラメータの値は「result」オブジェクトに格納され、fetch_row() メソッドを使用して取得されます。これにより、ストアド プロシージャから OUT パラメータの値にアクセスして表示できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3