1.首先在MySQL数据库中创建如下的数据库(数据库名称:db_mxd) 以及表(表名称:userInfo)
2.为了方便获取数据库中获取到的数据库,新建一个php类, Person.php, 如下:
<?php class Person { public $id; public $userName; public $age; public $resume; public $userAccount; public $password; function __construct($_id, $_userName, $_age, $_resume, $_userAccount, $_password) { $this->id = $_id; $this->userName = $_userName; $this->age = $_age; $this->resume = $_resume; $this->userAccount = $_userAccount; $this->password = $_password; } }
3. 获取数据库中的数据,并以JSON的格式现实出来:
<?php require_once "Person.php"; $arr = array( 'code'=>'400', 'message'=>'Insert In Error' ); $conn = mysql_connect('127.0.0.1', 'root', 'root') or die('Error Info : '.mysql_error()); mysql_select_db('db_mxd', $conn); $result_sql = mysql_query("select * from userInfo") or die('Error Info_1'.mysql_error()); $row = mysql_fetch_object($result_sql); $result = array(); do{ $obj = new Person($row->id, $row->userName, $row->age, $row->resume, $row->userAccount, $row->password); array_push($result, $obj); }while($row = mysql_fetch_object($result_sql)); if(count($result) > 0) { $arr['code'] = '200'; $arr['message'] = 'Success'; $arr['result'] = $result; }else{ $arr['result'] = $result; }mysql_free_result($result_sql); // 关闭结果集 mysql_close($conn); //关闭MySQL服务器echo json_encode($arr);
?>
5. 访问浏览器,可以获得如下的结果:
{
"code": "200",}
[说明]
PHP对mysql_query()获得的结果集$result中数据的获取提供了三种常用的方法mysql_fetch_object(),mysql_fetch_array()和mysql_fetch_row():
(1)object mysql_fetch_object(resource result)
mysql_fetch_object()返回的是一个对象,对象的属性值的字段名为数据库表的字段名(区分大小写),可以使用do-while循环获取结果集$result中的每一个对象$obj_result,并使用如下的方法获取数值:$obj_result->col_name(col_name为表中列的字段名称):
<?php $conn = mysql_connect('127.0.0.1', 'root', 'root') or die('Error Info : '.mysql_error()); mysql_select_db('db_mxd', $conn); $result = mysql_query("select * from userInfo"); $obj_result = mysql_fetch_object($result) or die(); // 使用mysql_fetch_object()获取$result中的数据 do{ echo 'userName is:'.$obj_result->userName.'<br/>'; echo 'userAccount is : '.$obj_result->userAccount; }while($obj_result = mysql_fetch_object($result)); mysql_free_result($result); //关闭结果集 mysql_close($conn); // 关闭MySQL服务器 ?>
(2)array mysql_fetch_array(resource result [, int result_type]);
mysql_fetch_array()函数的传入参数除了结果集之外,还有一个可选参数result_type,他的取值有三个:MYSQL_ASSOC(关联索引),MYSQL_NUM(数字索引)和MYSQL_BOTH(同时包含关联索引和数字索引),默认为MYSQL_ASSOC
需要说明的是对于数组$arr = array( .... ):关联索引就是使用key-value的方式,通过key获取value,$userName = $arr['userName']去获取数组中的数据数值,而数字索引就是使用$arr[0],通过元素的下标获取元素的数值
<?php $conn = mysql_connect('127.0.0.1', 'root', 'root') or die('Error Info : '.mysql_error()); mysql_select_db('db_mxd', $conn); $result = mysql_query("select * from userInfo"); $arr_result = mysql_fetch_array($result) or die(); // 使用mysql_fetch_array()获取结果集$result中的数据 do{ echo 'userName is:'.$arr_result['userName'].';'; echo 'userAccount is : '.$arr_result[4].'<br/>'; // }while($arr_result = mysql_fetch_array($result)); mysql_free_result($result); //关闭结果集 mysql_close($conn); // 关闭MySQL服务器 ?>
【说明】上面代码中的$arr_result[4]获取的是数据库的表userInfo中userAccount一列的数值,这是因为userAccount是第4列,其中id为第0列。
(3)array mysql_fetch_row(resource result)
mysql_fetch_row($result)和mysql_fetch_array($result, MYSQL_NUM)相似,获得的是数据库的表中的一行,作为一个array输出,使用数字索引来获取每一列的数据,偏移量从0开始,使用do-while获取每一行的数据数组$row_result = mysql_fetch_row($result),直到没有更多行时返回false:
<?php $conn = mysql_connect('127.0.0.1', 'root', 'root') or die('Error Info : '.mysql_error()); mysql_select_db('db_mxd', $conn); $result = mysql_query("select * from userInfo"); $row_result = mysql_fetch_row($result) or die(); // 使用mysql_fetch_row()获取数据 do{ echo 'userName is:'.$row_result[1].';'; echo 'userAccount is : '.$row_result[4].'<br/>'; }while($row_result = mysql_fetch_row($result)); mysql_free_result($result); //关闭结果集 mysql_close($conn); // 关闭MySQL服务器 ?>