如何将PDOStatement
转换为json?那里有图书馆吗?
编辑:我需要jsonify PDO::FETCH_OBJ
。对不起,感谢所有回复。
json_encode
无法对PDO::FETCH_OBJ
进行jsonify。
感谢。
答案 0 :(得分:76)
您可以使用内置的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);
答案 1 :(得分:12)
使用PDOStatement的fetchAll()
方法检索值的数组,然后将其传递给json_encode()
。
$resultJSON = json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
答案 2 :(得分:8)
$array = $statement->fetchAll( PDO::FETCH_ASSOC );
$json = json_encode( $array );
答案 3 :(得分:6)
试试这可能对你有所帮助
$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';
}
答案 4 :(得分:5)
我还发现在发送回json_encode()返回的JSON对象之前插入和设置PHP头(&#39; Content-Type:application / json&#39;)非常有用
答案 5 :(得分:2)
而不是使用标题('我的php文件中的'Content-Type ...,我在我的javascript文件中使用了dataType:'JSON'。
答案 6 :(得分:0)
我的使用代码
<?php
header('Content-Type: application/json');
try {
$db = new PDO("mysql: host=localhost; dbname=veritabani; charset=utf8","root","mysql");
} catch(PDOException $message) {
echo $message->getMessage();
}
$query = $db->prepare("SELECT id,product_name,product_price,delivery_date FROM teklif ORDER BY id");
$query->execute();
$data = $query->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($data);