Преобразование набора записей PDO в JSON в PHP

Я использую PHP, и мне нужен способ преобразования целого набора записей в строку JSON.

Во время поиска Stack Overflow я нашел это решение, которое работает:

function recordSetToJson($mysql_result) { $rs = array(); while($rs[] = mysql_fetch_assoc($mysql_result)) { // you don´t really need to do anything here. } return json_encode($rs); } 

Проблема с этим кодом заключается в том, что я обнаружил, что функция mysql_fetch_assoc() устарела в PHP 5.5.0. Другое дело, что im использует PDO для подключения к моей базе данных.

Учитывая вышеизложенное, было бы лучшим решением для преобразования набора записей PDO в JSON? Я хочу, чтобы он работал и в более поздних версиях PHP.

Решение прост. Учитывая, что переменная $stmt является вашим набором записей PDO, вы можете преобразовать ее в JSON следующим образом:

 json_encode($stmt->fetchAll(PDO::FETCH_ASSOC)); 

Для получения дополнительной информации о функциях, используемых в этом фрагменте кода:

http://www.php.net/manual/en/function.json-encode.php

http://www.php.net/manual/en/pdostatement.fetchall.php

Вы должны использовать что-то подобное

где-то раньше

 $stmt = $pdo->prepare("SELECT * FROM fruit WHERE name = ?"); $stmt->execute(array("Apple")); .... function recordSetToJson($stmt) { $json_result = array(); while($tmp = $stmt->fetch() ) { $json_result[] = $tmp; } return json_encode($json_result); } 

Но окончательное решение будет полностью зависеть от слишком многих факторов.