Php PDO语句到JSON
如何将Php PDO语句到JSON,php,json,pdo,Php,Json,Pdo,如何将pdo语句转换为JSON 我需要jsonifaPDO::FETCH_OBJ json_encode无法对PDO::FETCH_OBJ使用PDO语句的方法检索值数组,然后将其传递给 您可以使用内置的php函数json_encode() 要对结果进行编码,请使用 我还发现,在发回json_encode()返回的json对象之前,插入并设置PHP头('Content-Type:application/json')非常有用。试试这可能会对您有所帮助 $data = array();
pdo语句
转换为JSON
我需要jsonifaPDO::FETCH_OBJ
json_encode
无法对PDO::FETCH_OBJ
使用PDO语句的方法检索值数组,然后将其传递给
您可以使用内置的php函数json_encode() 要对结果进行编码,请使用
我还发现,在发回json_encode()返回的json对象之前,插入并设置PHP头('Content-Type:application/json')非常有用。试试这可能会对您有所帮助
$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 cors
header('Content-Type: application/json');
print json_encode($data);
}else{
echo 'error';
}
你指的是哪个PDOStatement
呢?你刚才是不是对一个PDOStatement对象进行了json_编码?是的,我做了哪种工作,当解码它返回一个stdClass对象时@mediaslave您可以在PDO::FETCH_OBJ上使用json_encode,当您运行PDO::FETCH_OBJ时,它会创建stdClass的对象,然后可以将这些对象编码为json对象,然后解码回stdClass对象。对您的结果进行一些var_转储,然后查看:)PDO::FETCH_ASSOC
非常重要,否则您将有双重信息。我们应该使用FETCH_OBJ还是FETCH_ASSOC?在我的例子中,我使用了带有排序规则utf8_unicode_ci
的da MySQL数据库。出于某种原因,json_encode告诉我,格式错误的UTF-8字符,可能编码不正确
。我必须将$results
数组转换为unicode(再次?),现在它可以工作了。这并没有回答问题,而且,在进行解码之前,设置该标头有什么帮助?如果你能解释一下,它可以在被接受的答案中加入评论(甚至编辑过度)。
$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 cors
header('Content-Type: application/json');
print json_encode($data);
}else{
echo 'error';
}