2

如何在 PHP 中从一个结果集移动到另一个结果集。

我已经通过 mysqli 方法创建了一个数据库连接,即 mysqli('root', 'localhost', 'root', '', 'test', 3306)

我有一张像下面这样的桌子

    创建表区域(区域名称 VARCHAR(255),
                        密码 VARCHAR(255))

    插入区域(区域名称、密码)
          值('Teynampet','6000018'),
                ('拉马普拉姆','6000089'),
                ('TNagar', '6000017'),
                ('Mylapore', '6000014'),
                ('戈帕拉普拉姆','6000087')

我有一个像下面这样的程序

    如果存在 mp_test1,则删除过程;
    创建过程 mp_test1()
    开始
      从区域中选择区域名称;
      从区域中选择密码;
    结尾

现在,如果您看到它返回两个结果集的过程。请注意结果集不是记录集。我如何在 PHP 中从一个结果集移动到另一个结果集。

不要建议我使用内部联接进行查询,因为我的要求与我在上面发布的不完全相同。我的问题是在 PHP 中从一个结果集转移到另一个结果集

4

1 回答 1

1

当使用PDO时,这将是PDOStatement::nextRowset方法


使用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 回答