Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php nextRowset()执行while循环导致500错误_Php_Mysql_Json_Pdo_Data Objects - Fatal编程技术网

Php nextRowset()执行while循环导致500错误

Php nextRowset()执行while循环导致500错误,php,mysql,json,pdo,data-objects,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); $resultSe

我正在使用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 test.”echo打印,我没有得到JSON结果集,我的连接也没有关闭

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

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


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

通常500的错误意味着PHP错误,考虑检查您的Apache错误日志,以便查看错误。顺便说一句,如果您已经在查询本身中使用了
paramArray
,那么
execute($paramArray)
有什么意义呢?(或者我这里遗漏了什么)您使用的是哪个版本的PHP和Mysql?请用详细信息编辑您的问题。