Цикл do-while nextRowset (), вызывающий ошибку 500

Я создаю веб-сервис для мобильного приложения на PHP, используя вызовы базы данных PDO. Код проблемы ниже:

// 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 ошибок, я не получаю «Привет тест». эхо, чтобы напечатать, и я не получаю набор результатов JSON, и мое соединение не закрывается.

  • Если я удалю цикл do while, ошибки 500 нет, я получу первую строку моего результата
    (потому что это не зацикливание) установить и «Hello тест» эхо с
    соединение закрыто.

  • Если я размещу echo json_encode ($ resultSets); внутри цикла я получаю набор результатов JSON, но я получаю первый набор результатов целиком, а затем я получаю первый, а также второй полностью (по сути, возвращая каждую строку, когда она попадает в набор результатов. было предсказуемо, но цикл работает ..).

В любом другом примере PDO, который я рассмотрел, это цикл, который они используют для возврата данных. Я что-то здесь не так делаю?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …