51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

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

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



第一种方法


<?php  
//此处前面省略连接数据库
//默认下方的$con为连接数据库的操作
//可将其封装成专门将数据转换成json格式的接口
//吃猫的鱼www.fish9.cn
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %s\n", 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);//断开数据库连接操作
?>`



第二种方法


   <?php
   //此处前面省略连接数据库
$sql = "SELECT * FROM brands";  
$result = mysqli_query($con,$sql);  
if (!$result) {
    printf("Error: %s\n", 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);//断开数据库连接
?>`


赞(0)
未经允许不得转载:工具盒子 » PHP如何将数据库查询结果输出为json格式