2

PHP で 1 つの結果セットから別の結果セットに移動する方法。

mysqli メソッド、つまり mysqli('root', 'localhost', 'root', '', 'test', 3306) を使用して DB 接続を作成しました。

以下のようなテーブルがあります

    CREATE TABLE Areas(AreaName VARCHAR(255),
                        PinCode VARCHAR(255))

    INSERT INTO Areas(AreaName, PinCode)
          VALUES('テイナンペット', '6000018'),
                ('ラマプラン', '6000089'),
                ('TNagar', '6000017'),
                ('Mylapore', '6000014'),
                (「ゴパラプラム」、「6000087」)

以下のような手順があります

    存在する場合は手順を削除する mp_test1;
    プロシージャの作成 mp_test1()
    始める
      SELECT AreaName FROM エリア;
      領域から PinCode を選択します。
    終わり

プロシージャが表示されると、2 つの結果セットが返されます。レコード セットではなく結果セットに注意してください。PHP で 1 つの結果セットから別の結果セットに移動するにはどうすればよいですか。

私の要件は私が上に投稿したものとまったく同じではないため、クエリの内部結合を提案しないでください.私の質問はPHPである結果セットから別の結果セットに移動しています

4

1 に答える 1

1

PDOStatement::nextRowsetメソッドとなるPDOを使用する場合


mysqliを使用する場合、使用する関数/メソッドはmysqli::next_result です。


mysqli の例:

<?php
$mysqli = new mysqli('localhost', 'localonly', 'localonly', 'test');
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
}


if (!$mysqli->multi_query('CALL mp_test1')) {
    echo 'error';
}
else {
    do {
        echo "--- result set ---\r\n";
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                echo join(', ', $row), "\n";
            }
            $result->free();
        }
    } while ($mysqli->more_results() && $mysqli->next_result());
}

印刷物(質問のサンプルデータ付き)

--- result set ---
Teynampet
Ramapuram
TNagar
Mylapore
Gopalapuram
--- result set ---
6000018
6000089
6000017
6000014
6000087
--- result set ---
于 2012-08-29T11:17:39.097 に答える