当前位置:文档之家› 第3讲数据库访问层设计

第3讲数据库访问层设计

$array_name = array([[key=>value],[[key]=>value],…[[key]=>value]];
数组
一维数组
通过array()函数声明数组: $array_name = array([[key=>value],[[key]=>value],…[[key]=>value]]; 直接为数组元素赋值,例如: … …. $arr_student ["name"]="张三"; $arr_student ["gender"]="男"; $arr_student ["age"]=32; … …. 注意:在定义数组元素时,元素键名在数组中不能重复,如有重复后面的元 素将会覆盖前面同键名的元素,它与数组元素一一对应。 如不指定数组元素键名,PHP将按照第1个出现的未指定键名的元素的索引 名为0,之后元素的键名为当前最大整数键名加1。例如: $arr_tmp = array("张三",3=>"男",32,"G03"=>"长沙","三年级"); 该数组第1个元素没有指定键名,所以其默认键名为0,因为第2个元素指定 了键名为3,故第3个元素的键名为3+1即4,第5个元素的键名为4+1即5,该 数组的结构如下所示: Array ( [0] => 张三 [3] => 男 [4] => 32 [G03] => 长沙 [5] => 三年级)
数据库访问层设计
内容
本节主要内容:
函数 数组 PHP数据库访问技术 项目任务 完成管理论坛系统数据库访问层框架设计。 完成用户数据表的访问设计与实现。
函数
函数定义
函数就是为了解决一些常见问题实现制作好的 “模”。
PHP函数分为:系统内部函数 和 自定义函数 。 格式 func(val1,val2,„); 例子 函数的优越性: 控制程序设计的复杂性 提高软件的可靠性 提高软件的开发效率 提高软件的可维护性 提高程序的重用性
数据库访问技术
数据查询功能
示例请编写程序查询并显示诚信论坛数据库中的用户表中的 记录。
… … … … 分析:在要获得用户表( tbl_user)中的记录,在创建与数据库连接的基础 … … //取所有用户信息 46 20 foreach($result as $rec){//显示各行记录 之上,使用 mysql_query 函数执行一条 SQL查询语句。由于要显示所有用户 8 /* 47 22 function if($bgcolor=="#ffffff"){ getUsers(){ 记录,因此该 SQL语句是“select * from tbl_user”。 9 * 建立与数据库连接 48 $bgcolor = "#dddddd"; 23 $conn = get_Connect();// 创建与数据库的连接 10 */ $query 49 }else{= "select * from tbl_user";//查询语句 24 11 function get_Connect() { 50 $bgcolor = "#ffffff"; 25 $result = array();// 定义查询结果 12 //创建与数据库的连接 51 } = mysql_query($query,$conn) or die("查询错误!"); 26 $rs 13 $connection @mysql_connect("localhost","root","root"); 52 echo "<tr= bgcolor = $bgcolor height=27>"; 27 for ($i=0;$i<mysql_num_rows($rs);$i++) {//读取查询结果集 14 //选择应有诚信数据库 53 echo "<td>". $rec["uId"]."</td>"; 28 $result[$i] = mysql_fetch_assoc($rs);// 读取一行记录 15 @mysql_select_db("cxbbs",$connection); 54 29 } echo "<td>". $rec["uName"]."</td>"; 16 mysql_query("set names utf8");// 设置数据库通信字符集为 55 30 mysql_free_result($rs);// echo "<td>". ($rec["gender"]==2?" 释放结果集 男":"女")."</td>"; utf-8 17 return $connection; 56 echo "<td>". $rec["regTime"]."</td>"; 31 mysql_close($conn);// 关闭连接 18 } 57 echo $result;// "</tr>"; 返回查询结果 32 return …} … 58 33 } … ……. ….
函数
示例定义圆面积计算函数。
<html> 定义计算圆 <body> 面积的函数 <?php function circle_area($radius){ $area = $radius * $radius * M_PI; return $area; } echo "半径为2的圆面积为:".circle_area(2);//调用自定义函数 ?> </body> </html> 函数调用
函数
可变参数列表
可变参数列表指在函数调用时传递给函数的参数个数与函数定义时的参 数个数不相等。 PHP处理可变参数的函数:
func_num_args():用于获取调用函数时的实参个数;
func_get_args():用于返回所有参数组成的数组; fun_get_arg($i):用于返回实参列表中位于第$i位的参数值。 …… function get_max(){ $max = 0; for($i = 0 ;$i <func_num_args(); $i++){//遍历参数列表 $max = func_get_arg($i); //取指定列的参数值 } } get_max(4,12,23,2,4,6,9,15); //可变参数函数调用 ……
数据库访问技术
PHP中通过mysql和mysqli扩展库来实现对MySQL数据库 的支持。 设置扩展库的方法:
在PHP配置文件(php.ini)中,添加加载mysql扩展库。 extension=php_mysql.dll
数据库访问技术
PHP访问数据库的一般步骤
建立数据库连接 $conn = mysql_connect("localhost","root","root") or die( print("连接创 建错误!")); 选择数据库 mysql_select_db("cxbbs",$conn) or die("无法激活诚信数据库!"); 执行数据表操作 $query = "select * from tbl_user";//查询语句 $rs = mysql_query($query,$conn) or die("查询错误!");//执行查询 读取、处理结果 for ($i=0;$i<mysql_num_rows($rs);$i++) {//循环读取查询结果集 $result[$i] = mysql_fetch_assoc($rs);//从结果集中读取一行记录 } 释放内存,关闭连接 mysql_free_result($rs);//释放结果集 mysql_close($conn);//关闭连接
函数
函数的参数
PHP支持传值、传引用和默认三种参数传递方法。
传值参数是最常用的方法,它不会改变实参变量的值。 传引用参数是可以改变实参变量的值,也就是在函数内部修改形参的值 时,将会使函数外部的实参变量的值发生变化。在函数定义时通过在参 数前加上符号“&”来表示是引用传递。 默认参数是指在定义函数时,可以为参数指定默认值,如果调用函数时 没有传递该参数,将使用默认值。
函数
默认参数
…… function get_desc($param1,$param2=2){//为参数$param2设置一个默 认值 …… } … get_desc($a);//在调用时第二参数使用默认值 get_desc($a,$b);//使用两个参数调用函数 在定义参数默认值时,所指定默认值的参数必须放在没有指定默认值的 参数的右边,否则函数无法执行。
函数
示例定义一个函数,要求对两个传入参数进行降序排序并 返回。
…… <?php 分析:由于函数只能返回一个值,而本示例要求对两个参数进行比较, function get_desc(&$param1,&$param2){ 并按照从大到小进行排序,这就要求该函数能返回两个值。要实现这种 $tmp = 0; if($param1 < $param2){//比较两数的大小 功能通常的方法是在传参时采用引用传递方式,通过引用参数将结果返 $tmp = $param1; 回到调用程序中。 $param1 = $param2; $param2 = $tmp; } } $a = 4; $b = 16; echo "排序前的值为:".$a.", ".$b; get_desc($a, $b); //使用传引用调用 echo "<br/> 排序后的值为:".$a.", ".$b; ?> ……
相关主题