Php nextRowset()执行while循环导致500错误
我正在使用PDO数据库调用为PHP中的移动应用程序创建一个web服务。问题代码如下: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
// 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?请用详细信息编辑您的问题。