美文网首页
PHP连接MySQL数据库,输出json格式及编码问题

PHP连接MySQL数据库,输出json格式及编码问题

作者: 盖小同学 | 来源:发表于2017-03-07 23:04 被阅读1313次
  • 最近在学习php,昨天研究了一下通过php连接MySQL数据库,查询数据库内容并以json数据格式显示出来,很简单的几行代码。
  • 因为用的php版本是php7,所以采用了mysqli来查询数据库,并没有用mysql,不过貌似好像差别不大。

  • 补充:今天重新打开的时候访问user数据库的时候没问题,但是访问blog数据库的时候出现问题了,没有办法形成json数据,然后忙活了半小时之后排查出来了,用var_dump方法能够输出,不能输出json,而且输出的是乱码,所以问题就找到了,因为我的blog表中好多中文,所以出现了乱码,紧接着也就导致了无法形成json格式的数据。

解决办法也很简单:

  $connect = mysqli_connect('localhost','root','123456','springdemo')or die('Unale to connect');  

后面加上这样一句设置格式的就好了~
mysqli_query($connect,'set names utf8');


    <?php
    header ( "Content-type:text/html;charset=utf-8" );   
    //统一输出编码为utf-8     
    $connect = mysqli_connect('localhost','root','123456','springdemo')or die('Unale to connect');   
    $sql = "select * from user";   
    $result = mysqli_query($connect,$sql);   
    $arr = array();   
    while($row = mysqli_fetch_assoc($result)){   
            array_push($arr,$row);//往array数组中加入查询得到的数据   
    }   
    echo json_encode($arr,JSON_UNESCAPED_UNICODE);
    //json编码  JSON_UNESCAPED_UNICODE为防止中文乱码
    ?> 

通过以上可以查询结果如图

2017-03-07 22-20-51屏幕截图.png

因为刚刚开始学php,所以学的比较基础。想慢慢积累,所以开始试着写写博客记录一下。

  • 另外mysqli_fetch_assoc和mysqli_fetch_array都可以实现查询数据库功能,不过区别在于前者不会显示索引后者会显示索引

不输出json格式数据的话,可以不用最后一行

    echo json_encode($arr,JSON_UNESCAPED_UNICODE);

直接输出数据

  <?php
  header ( "Content-type:text/html;charset=utf-8" );
    //统一输出编码为utf-8     
  $connect = mysqli_connect('localhost','root','123456','springdemo')or die('Unale to connect');
  $sql = "select * from user";
  $result = mysqli_query($connect,$sql);
  $arr = array();
  while($row = mysqli_fetch_assoc($result)){
    array_push($arr,$row);
  }
  foreach($arr as $single){
    echo var_dump($single).'<br>';
  }
   ?> 

#结果如图

2017-03-07 23-06-02屏幕截图.png

其实还有其他很多方法输出数据结果,可以都试试

相关文章

网友评论

      本文标题:PHP连接MySQL数据库,输出json格式及编码问题

      本文链接:https://www.haomeiwen.com/subject/rljvgttx.html