ホームページ >データベース >mysql チュートリアル >PHP ストアド プロシージャから出力パラメータ値を取得するにはどうすればよいですか?

PHP ストアド プロシージャから出力パラメータ値を取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 07:41:30403ブラウズ

How Do You Retrieve Output Parameter Values from PHP Stored Procedures?

PHP ストアド プロシージャでの出力パラメータ値の取得

PHP および MySQL ストアド プロシージャの領域では、次のことが必要になる場合があります。 「out」パラメータと呼ばれる出力パラメータの値にアクセスします。ドキュメントが少ないように見えますが、PHP MySQLi 拡張機能を使用してこれを実現する方法があります。

ストアド プロシージャが myproc(IN i int, OUT j int) として定義されていると仮定します。ここで、i パラメータは入力です。 j は出力パラメータです。 PHP で出力値にアクセスするには、次の手順を使用できます。

<code class="php">// Establish a connection to the database
$mysqli = new mysqli("HOST", "USR", "PWD", "DBNAME");

// Input parameter value
$ivalue = 1;

// Execute the stored procedure and capture the result
$res = $mysqli->multi_query("CALL myproc($ivalue, @x);SELECT @x");

// Check if the execution was successful
if ($res) {
    $results = 0;

    // Iterate through the results
    do {
        // Store the result
        if ($result = $mysqli->store_result()) {
            printf("<b>Result #%u</b>:<br/>", ++$results);

            // Fetch and display the rows
            while ($row = $result->fetch_row()) {
                foreach ($row as $cell) echo $cell, " ";
            }
            $result->close();
        }
    } while ($mysqli->next_result());
}

// Close the connection
$mysqli->close();</code>

このスクリプトは、MySQLi の multi_query() 関数と store_result() 関数を利用してストアド プロシージャを実行し、入力値と出力値の両方を取得します。出力値には、SELECT クエリに @x を含めることによってアクセスします。ここで、x はストアド プロシージャの出力パラメーターの名前です。

以上がPHP ストアド プロシージャから出力パラメータ値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。