php查询mysql,返回json格式数据

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() 那样)。

你可能感兴趣的:(json,mysql,PHP)