如何在PHP中从一个结果集移动到另一个结果集。
我通过mysqli方法创建了一个数据库连接,即mysqli('root','localhost','root','','test',3306)
我有一张像下面的表
CREATE TABLE Areas(AreaName VARCHAR(255), PinCode VARCHAR(255)) INSERT INTO Areas(AreaName, PinCode) VALUES('Teynampet', '6000018'), ('Ramapuram', '6000089'), ('TNagar', '6000017'), ('Mylapore', '6000014'), ('Gopalapuram', '6000087')
我有一个像下面的程序
DROP PROCEDURE IF EXISTS mp_test1; CREATE PROCEDURE mp_test1() BEGIN SELECT AreaName FROM Areas; SELECT PinCode FROM Areas; END
现在如果你看到过程它会返回两个结果集。请注意结果集不是记录集。如何在PHP中从一个结果集移动到另一个结果集。
不建议我内部联接查询,因为我的要求与我在上面发布的完全相同。我的问题是从PHP中的一个结果集转移到另一个结果集
答案 0 :(得分: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 ---