Как преобразовать PDOStatement
в json? Есть ли там библиотека?
EDIT: Мне нужно jsonify PDO::FETCH_OBJ
. Извините, спасибо за все ответы.
json_encode
не имеет возможности jsonify PDO::FETCH_OBJ
.
Благодарю.
Вы можете использовать встроенную функцию php json_encode () http://php.net/manual/en/function.json-encode.php
Чтобы кодировать результаты, используйте что-то вроде
<?php $pdo=new PDO("mysql:dbname=database;host=127.0.0.1","user","password"); $statement=$pdo->prepare("SELECT * FROM table"); $statement->execute(); $results=$statement->fetchAll(PDO::FETCH_ASSOC); $json=json_encode($results);
Используйте метод fetchAll()
PDOStatement для извлечения массива значений, а затем передайте его в json_encode()
.
$resultJSON = json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
$array = $statement->fetchAll( PDO::FETCH_ASSOC ); $json = json_encode( $array );
Я также нашел очень полезным вставить и установить заголовок PHP ('Content-Type: application / json') перед отправкой обратно объекта JSON, возвращенного json_encode ()
Ошибка случая в ajax:
Вместо использования заголовка («Content-Type …» в моем php-файле я использовал dataType: «JSON» в моем файле javascript.