通过 mysql db 中的数据和变量数据创建 json

Posted

技术标签:

【中文标题】通过 mysql db 中的数据和变量数据创建 json【英文标题】:creating json by data from mysql db and variable data 【发布时间】:2022-01-16 12:11:16 【问题描述】:

我有来自 mysql 数据库的数据和来自数据库的 base64 文件的数据 我想将它们结合起来,这样我就可以同时拥有一个 JSON 数据

$PaFile="JVBERi0xLjcKMS.....";
$NaFile="JVBERi0xLjvvm.....";
$sqlRun = mysqli_query($conn, "SELECT laimCode, laimYear, laimMonth FROM laim_folio");
        $row = mysqli_fetch_assoc($sqlRun);
        $json_array[] = $row;
        $jasondata = json_encode($json_array[]);

我期望的输出是

[
 "laimCode":"1234",
 "laimYear":"2021",
 "laimMonth":"11",
 "PaFile":"JVBERi0xLjcKMS.....",
 "NaFile":"JVBERi0xLjvvm....."
]

如果我将这两个变量作为带有值的静态列放入 SQL 中,我可以获得我想要的结果 但是有没有办法在 SQL 之外将它们组合起来? 比如用两个额外的字段扩展数组,然后转换为 JSON

【问题讨论】:

【参考方案1】:

您可以在从数据库中获取数据之后将它们添加到数组中,然后再添加到整个数组中......

    $row = mysqli_fetch_assoc($sqlRun);
    $row['PaFile'] = "JVBERi0xLjcKMS.....";
    $row['NaFile'] = "JVBERi0xLjvvm.....";
    $json_array[] = $row;
    $jasondata = json_encode($json_array);

或者将值添加到 SQL 中,使它们成为结果集的一部分。所以值只是一个文字,别名变成了列名......

SELECT laimCode, laimYear, laimMonth,
        "JVBERi0xLjcKMS....." as PaFile,
        "JVBERi0xLjvvm....." as NaFile
    FROM laim_folio

【讨论】:

这两种处理速度哪个效率更高?因为base64文件是很长的文件来处理 @SalumSaid,第一个可能是最容易使用的。

以上是关于通过 mysql db 中的数据和变量数据创建 json的主要内容,如果未能解决你的问题,请参考以下文章

11MySQL

通过 cPanel 使用 PHP 创建 mysql DB 并导入 *.sql 文件

通过实体框架中的变量引用表

检查Java中的MySQL DB中是不是存在值?

mysql的JDBC连接

使用Docker使用Django创建mysql数据库