php查询mysql,返回json格式数据
编辑: 点击量: 294
php代码:
- <?php
- $conn=mysql_connect(localhost,root,);
- if(!$conn){
- echo connect failed;
- exit;
- }
-
- $sql=use student;
- mysql_query($sql,$conn);
- $sql="set names utf8";
- mysql_query($sql,$conn);
-
- $sql="select * from student";
- $rs=mysql_query($sql,$conn);
- if(!$rs){
- if(empty($rs)){
- echo empty res!;
- }
- echo get failed !;
- exit;
- }
-
- //新建数组
- $arr=array();
- //遍历
-
- //1.直接输出结果
- //mysql_fetch_array:每次从结果集中取出一行作为数组,其他类似。
- //while($row=mysql_fetch_array($rs,MYSQL_ASSOC)){
- // $arr[]=$row;
- //}
-
- //2.转换为对象,处理数据
- class Stu{
- public $name;
- public $age;
- }
-
- while($row=mysql_fetch_object($rs)){
- $s=new Stu();
- $s->name=$row->sname;
- $s->age=$row->sage;
- //填充数组
- $arr[]=$s;
- }
-
- //对变量进行json编码
- echo json_encode(array("state"=>"success",student=>$arr));
-
- //释放结果
- mysql_free_result($rs);
- //关闭连接
- //通常不需要使用 mysql_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭
- mysql_close();
- ?>
运行效果:

注意:
1.对json数据格式的转码和解码是通过:json_encode和json_decode进行的,具体的过程可以参考php文档。
2.mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。
王皓
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat王皓
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat王皓
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat