PDOStatement到json

时间:2010-05-05 02:30:54

标签: php json

如何将PDOStatement转换为json?那里有图书馆吗?

编辑:我需要jsonify PDO::FETCH_OBJ。对不起,感谢所有回复。

json_encode无法对PDO::FETCH_OBJ进行jsonify。

感谢。

7 个答案:

答案 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);