【问题标题】:PHP convert a SQL request into JSONPHP 将 SQL 请求转换为 JSON
【发布时间】:2018-11-04 16:09:02
【问题描述】:

我有一个这样的 SQL 表:

$sql="CREATE TABLE 
      config (ID INT AUTO_INCREMENT PRIMARY KEY, 
              nombre VARCHAR(50), 
              valor VARCHAR(50));";

让我们认为它有这行(ID、名称、值):

1 | name1 | value1
2 | name2 | value2
3 | name3 | value3

如何将我的 SQL 查询结果转换为仅包含名称和值数据的 JSON 对象?

【问题讨论】:

  • SQL 结果将不是字符串格式。它可以是一个对象或一个数组。
  • 你的意思是进入 json 字符串?只需像往常一样获取行,将其放入数组中并在其上使用json_encode

标签: php sql json


【解决方案1】:

您必须执行三个步骤:

1.) 创建所需的 SQL 并运行它:

$sql = "SELECT nombre, valor FROM config";
$stmt = $pdoCon->prepare($sql);
$stmt->execute();

2.) 使用您的 SQL-Connection(我将在我的回答中使用 PDO)查询所需的数据:

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

3.) 使用 json_encode() 从数组中创建 JSON 字符串:

$json = json_encode($result);

【讨论】:

    【解决方案2】:

    通过执行查询来获取数据,该查询将返回一个数组,然后使用 json_encode 将其转换为 json

    【讨论】:

      【解决方案3】:
      **Try Below Code**
      <?php
      $sql="SELECT nombre, valor FROM config";
      
      $result = $conn->query($sql);
      
      $myData=array(); // blank array
      if ($result->num_rows > 0) {
          while($row = $result->fetch_assoc()) {
              unset($row['nombre']);
             array_push($myData,$row); // push rows to array $myData
          }
      } 
      
      // get array with removed nombre ==>$myData
      
      echo json_encode($myData); //get json
      
      ?>
      

      【讨论】:

      • 感谢佩德罗·何塞·奥特罗·罗德里格斯。
      猜你喜欢
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 2018-06-06
      • 2017-11-03
      • 2020-05-22
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多