nextRowset()do-while循环导致500错误

时间:2015-05-29 18:20:45

标签: php mysql json pdo data-objects

我正在使用PDO数据库调用在PHP中为移动应用程序创建Web服务。问题代码如下:

// Prepare Stored Procedure Call
    $query = "CALL " . $_GET['proc'] . '('.implode(', ', array_keys($paramArray)).')';
    $stmt = $dbh->prepare($query);
    $stmt->execute($paramArray);
    $resultSets = array();

// Loop And Build Results into a JSON Array

    do {
        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
        if($rows){
            //echo json_encode($rows);
            $resultSets[] = $rows;
        }

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

    echo "Hello test.";
    echo json_encode($resultSets);

while($ stmt-> nextRowset()); 在我的服务器上造成500错误,停止代码。

  • 使用上面的代码,我得到500错误,我没有得到“Hello测试”。 echo to print,我没有得到JSON结果集,我的连接没有关闭。

  • 如果我删除do while循环,没有500错误,我得到结果的第一行 (因为它不是循环)设置和“Hello测试”回显 连接关闭。

  • 如果我在循环中放置 echo json_encode($ resultSets); ,我会得到JSON结果集,但是我得到了第一个结果集,然后我得到第一个和第二个完整的(基本上返回每一行,因为它循环到结果集。这是可预测的,但循环正在工作..)。

在我看过的每个其他PDO示例中,这是他们用来返回数据的循环。我在这里做错了吗?

0 个答案:

没有答案