在php中调用存储过程(返回两个表)

时间:2014-05-08 10:17:43

标签: php stored-procedures mysqli

我正在使用php进行GUI工具开发。数据库中已存在STORED PROCEDURES。 无法更改这些存储过程。(其他工具相关性)。

我的问题:直接在mysql中调用时,有一个返回两个表的过程。 (可能 2选择语句)。

如何使用'mysqli-php'显示返回的两个表中的数据?

注意:返回的两个表都包含相同的列(名称,ID,状态)

1 个答案:

答案 0 :(得分:2)

利用mysqli::use_result

$mysqli = new mysqli("localhost", "root", "password", "db_name");
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") ";
}

$query = "CALL sp_multiple results (?, ?)";
$stmt = $mysqli->prepare($query);

if (!$stmt) {
    echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

$stmt->bind_param("ss", $param1, $param2);

$stmt->execute();

/* get first result set */
if ($result1 = $mysqli->use_result()) {
    //fetch data
    $result1->close();
}

/* get second result set */
if ($result2 = $mysqli->use_result()) {
    //fetch data
    $result2->close();
}

$mysqli->close();