代码之家  ›  专栏  ›  技术社区  ›  manumoomoo

将语句转换为json

  •  39
  • manumoomoo  · 技术社区  · 14 年前

    我如何转换一个 PDOStatement

    我需要把一个 PDO::FETCH_OBJ .

    json_encode 无法将 PDO::获取对象 .

    6 回复  |  直到 3 年前
        1
  •  79
  •   Rwky    6 年前

    您可以使用内置的php函数json\u 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);
    
        2
  •  11
  •   Amber    14 年前

    fetchAll() 方法来检索值数组,然后将其传递给 json_encode() .

    $resultJSON = json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
    
        3
  •  5
  •   Galen    14 年前
    $array = $statement->fetchAll( PDO::FETCH_ASSOC );
    $json = json_encode( $array );
    
        4
  •  2
  •   Lawrence Cherone    7 年前

    我还发现在返回json_encode()返回的json对象之前插入并设置PHP头('Content-Type:application/json')非常有用

        5
  •  0
  •   TylerH Tim Pietzcker    3 年前

    试试这个也许对你有帮助

     $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';
        }