从 PDO 查询创建 JSON - PHP

我在 MySQL 数据库中有一个存储过程,它执行类似的查询"SELECT * FROM table"并返回这些行。

http://img2.mukewang.com/6496bbcd0001d8a514380544.jpg

我想用这些信息创建一个 JSON,我该怎么做?


这是我的代码:


主要的


<?php


 include "config.php";

 include "utils.php";


 $dbConn =  connect($db);


 if ($_SERVER['REQUEST_METHOD'] == 'GET'){


   $sth = $dbConn->prepare("CALL consulta_administrador()");

   $sth->execute();


   $result = $sth->fetchAll();

   var_dump($result);

   echo json_encode($result);

}


?>

配置文件


<?php


  $db = [

  'host' => 'myDBHost',

  'username' => 'myUsername',

  'password' => 'myPassword',

  'db' => 'myDB'

   ];


?>

实用程序.php


<?php

 function connect($db)

{

  try {

      $conn = new PDO("mysql:host={$db['host']};dbname={$db['db']}", $db['username'], $db['password']);

      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

      

      return $conn;

  } catch (PDOException $exception) {

      echo "Error:" , $exception->getMessage(), '<br>';

      die();

  }

}

?>


呼如林
浏览 98回答 2
2回答

茅侃侃

你可以这样做:<?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);编辑:假设您已连接到数据库:if ($_SERVER['REQUEST_METHOD'] == 'GET'){&nbsp; $pdo = new PDO("mysql:host={$db['host']};dbname={$db['db']}", $db['username'], $db['password']);&nbsp; $sql = $pdo->prepare("CALL consulta administratdor()";&nbsp; $sql->execute();&nbsp; $results = $statement->fetchALL(PDO::FETCH_ASSOC);&nbsp; $json = json_encode($results);}&nbsp;&nbsp;

繁星淼淼

我得到了问题的解决方案,问题是在我的数据库中我有json_encode函数无法理解的特殊字符,为了解决它,请将此行聚合到我的代码中$dbConn->query("SET NAMES 'UTF8'");:$dbConn =&nbsp; connect($db);$dbConn->query("SET NAMES 'UTF8'");if ($_SERVER['REQUEST_METHOD'] == 'GET'){&nbsp; &nbsp; $sql = "CALL consulta_administrador()";&nbsp; &nbsp; $q = $dbConn->query($sql);&nbsp; &nbsp; $data = $q->fetchAll(PDO::FETCH_ASSOC);&nbsp; &nbsp; echo json_encode($data, JSON_UNESCAPED_UNICODE);}
打开App,查看更多内容
随时随地看视频慕课网APP