PHP 将 SQL 请求转换为 JSON

Posted

技术标签:

【中文标题】PHP 将 SQL 请求转换为 JSON【英文标题】:PHP convert a SQL request into 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 【参考方案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

?>

【讨论】:

感谢佩德罗·何塞·奥特罗·罗德里格斯。

以上是关于PHP 将 SQL 请求转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章

如何将json请求转换为php [重复]

将 SQL 结果转换为 JSON 的正确方法

PHP实现chrome表单请求数据转换为接口使用的json数据

在 PHP 中使用来自 AJAX 请求的 JSON 字符串 [关闭]

如何将 JSON 字符串转换为数组

如何将 JSON 转换为 SQL 查询 - php