php - recorrer - PDOStatement to json
recorrer json php (6)
¿Cómo convertiría una PDOStatement
en json? ¿Hay una biblioteca para hacer esto?
EDITAR: necesito jsonify un PDO::FETCH_OBJ
. Perdón, gracias por todas las respuestas.
json_encode
no tiene la capacidad de jsonify un PDO::FETCH_OBJ
.
Gracias.
El error del caso aparece en ajax:
En lugar de usar el encabezado (''Content-Type ... en mi archivo php, utilicé dataType:'' JSON ''en mi archivo javascript.
Puede usar la función php incorporada json_encode () http://php.net/manual/en/function.json-encode.php
Para codificar los resultados, use algo como
<?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);
También me pareció muy útil insertar y configurar el encabezado PHP (''Content-Type: application / json'') antes de enviar de vuelta el objeto JSON devuelto por json_encode ()
Use el método fetchAll()
de PDOStatement para recuperar una matriz de valores y luego pase eso a http://php.net/manual/en/function.json-encode.php .
$resultJSON = json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
$array = $statement->fetchAll( PDO::FETCH_ASSOC );
$json = json_encode( $array );
$data = array();
if($stmt->execute()){
while ($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {
$data[''data''] = $row;
}
}
}
if(!empty($data)){
header("Access-Control-Allow-Origin: *");//this allows coors
header(''Content-Type: application/json'');
print json_encode($data);
}else{
echo ''error'';
}