这段代码将mySQL的记录集转换成JSON

2020-07-15 09:39:30  阅读 3010 次 评论 0 条

这段代码是利用PHP 传递base64处理后的SQL 语句 生成JSON 便于第三方应用调用,可根据实际情况转换成XML

BASE64主要是为了避免传递乱码,和简单加密使用,可以换成自己编写的加密语句。

<?php
    include_once("conSQL.php");
    //这段代码将mySQL的记录集转换成JSON
    $SQL =  $_SERVER['QUERY_STRING'];
    $SQL=base64_decode($SQL);
    $STR="[";
    $r=mysqli_query($cn,$SQL);
    $fields = mysqli_num_fields($r); //取得记录集的数字
    for($count=0;$count<$fields;$count++)//通过循环列出字段名 放在数组里
        {
            $field = mysqli_fetch_field($r);
            $字段[$count]=$field->name;
        }
     while($s=mysqli_fetch_row($r))
    {
               $STR=$STR. "{";
        //遍历数组
        for($count=0;$count<$fields;$count++)
        {
            $STR=$STR. '"'. $字段[$count]. '":';
            $STR=$STR. '"'.$s[$count].'",';
        }
               $STR=mb_substr($STR,0,mb_strlen($STR,"utf-8")-1,"utf-8");//去掉最后一个字符
               $STR=$STR. "},\n";
    }
    $STR=mb_substr($STR,0,mb_strlen($STR,"utf-8")-2,"utf-8");
   $STR=$STR. ']';
    echo $STR;
    mysqli_close($cn);
?>


执行结果:

[{"title":"AA","Name":"na1","idd":"1"}, {"title":"Abb","Name":"na2","idd":"2"}, {"title":"测试数据","Name":"nana3","idd":"3"}, {"title":"标题1","Name":"姓名1","idd":"4"}, {"title":"标题2","Name":"姓名2","idd":"5"}]



后来发现用自带函数

json_encode

就可以了,代码更简洁  后面的参数是显示中文用的

        header("Content-Type: application/json; charset=UTF-8");
          include_once("conMySQL.php");
          $SQL="select lx,count(idd) as sl from book group by lx";
          $STR="[";
          $r=mysqli_query($cn,$SQL);
          $outp = array();
          $outp = $r->fetch_all(MYSQLI_ASSOC);
          echo json_encode($outp,JSON_UNESCAPED_UNICODE);


本文地址:https://jinesc.net/?id=168
版权声明:本文为原创文章,版权归 jinesc 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?