PHP如何将数据库查询结果输出为json格式

2023-02-02 10:39:53 浏览数 (1)

PHP如何将数据库查询结果输出为json格式

近期做接口的时候需要做到一个操作,将数据库查询结果输出为json格式方便程序调用。 于是在网上看到了两种解法,就此分享出来,供大家学习以及自己日后进行参考。 可将其封装成专门将数据转换成json格式的接口

第一种方法

代码语言:javascript复制
<?php  
//此处前面省略连接数据库
//默认下方的$con为连接数据库的操作
//可将其封装成专门将数据转换成json格式的接口
//吃猫的鱼www.fish9.cn
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %sn", mysqli_error($con));
    exit();
}

$jarr = array();
while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){
    $count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小  
    for($i=0;$i<$count;$i  ){  
        unset($rows[$i]);//删除冗余数据  
    }
    array_push($jarr,$rows);
}
//此时的$jarr变量为数组,但是还不是json格式
echo json_encode($jarr);//将数组进行json编码,并且进行输出
$arr=json_decode($str);//再进行json解码
mysqli_close($con);//断开数据库连接操作
?>

第二种方法

代码语言:javascript复制
   <?php
   //此处前面省略连接数据库
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %sn", mysqli_error($con));
    exit();
}
 
$jarr = array();
while ($rows=mysqli_fetch_array($result,MYSQL_ASSOC)){
    $count=count($rows);//不能在循环语句中,由于每次删除 row数组长度都减小  
    for($i=0;$i<$count;$i  ){  
        unset($rows[$i]);//删除冗余数据  
    }
    array_push($jarr,$rows);
}
//$jarr是数组
 
$jobj=new stdclass();//实例化stdclass,这是php内置的空类,可以用来传递数据,由于json_encode后的数据是以对象数组的形式存放的,
//所以我们生成的时候也要把数据存储在对象中
foreach($jarr as $key=>$value){
$jobj->$key=$value;
}
//print_r($jobj);//打印传递属性后的对象
echo json_encode($jobj);//打印编码后的json字符串
mysqli_close($con);//断开数据库连接
?>

本文共 352 个字数,平均阅读时长 ≈ 1分钟

0 人点赞