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