Home » Php » PDOStatement to json

PDOStatement to json

Posted by: admin November 29, 2017 Leave a comment

Questions:

How would I convert a PDOStatement to json? Is there library out there to do this?

EDIT: I need to jsonify a PDO::FETCH_OBJ. Sorry, thanks for all of the responses.

json_encode does not have the ability to jsonify a PDO::FETCH_OBJ.

Thanks.

Answers:

You can use the inbuilt php function json_encode() http://php.net/manual/en/function.json-encode.php

To encode the statement use something like this:

<?php
$pdo=new PDO("mysql:dbname=database;host=127.0.0.1","user","password");
$statement=$pdo->prepare("SELECT * FROM table");
$json=json_encode($statement);
?>

To encode just the results use something like

<?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);
?>

Questions:
Answers:

Use the fetchAll() method of the PDOStatement to retrieve an array of the values, and then pass that to json_encode().

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

Questions:
Answers:
$array = $statement->fetchAll( PDO::FETCH_ASSOC );
$json = json_encode( $array );

Questions:
Answers:

I have also found it very useful to insert and set the PHP header(‘Content-Type: application/json’) prior to sending back the JSON object returned by json_encode()

Questions:
Answers:

Case error appear in ajax:

Instead of using the header(‘Content-Type… in my php file, I used dataType: ‘JSON’ in my javascript file.