php pdo只返回一个结果集

时间:2015-09-16 01:42:26

标签: php mysql pdo

我是php的新手。我正在调用存储过程,该过程在MYSQL中返回多个结果集。

我似乎无法让PHP PDO获得第二个结果集。我只得到第一个。任何帮助都是适用的

- 更多信息

存储过程只是选择这样的语句

select * from Product where productId = id;
select url from Images where product_id = id;

PHP代码:

 $conn = new PDO('mysql:host=localhost;dbname=salamancju_HardGraft', $this->userName, $this->password);

        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

        $stmt = $conn -> prepare('call GetProductById(:id)');
        $stmt->execute( array(':id' => $id));

        $results = array();

        do {
            $results = $results + $stmt->fetchAll(PDO::FETCH_NUM);

        } while ($stmt->nextRowset());

        echo json_encode($results);

1 个答案:

答案 0 :(得分:0)

您的问题与存储过程无关。 数组上的+运算符不是你想象的那样。改为使用[]:

    do {
        $results[] = $stmt->fetchAll(PDO::FETCH_NUM);

    } while ($stmt->nextRowset());

将生成一个嵌套数组。如果您想要其他格式,请提供示例。

除此问题外,您的代码也很完美。大多数不熟悉PHP的人都无法做到这一点。