Я использую 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));
Для получения дополнительной информации о функциях, используемых в этом фрагменте кода:
Вы должны использовать что-то подобное
где-то раньше
$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); }
Но окончательное решение будет полностью зависеть от слишком многих факторов.