Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO语句到JSON_Php_Json_Pdo - Fatal编程技术网

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

我需要jsonifa
PDO::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';
    }