第3章 PHP操作数据库

上传人:彧*** 文档编号:240747432 上传时间:2024-05-04 格式:PPT 页数:74 大小:1.97MB
返回 下载 相关 举报
第3章 PHP操作数据库_第1页
第1页 / 共74页
第3章 PHP操作数据库_第2页
第2页 / 共74页
第3章 PHP操作数据库_第3页
第3页 / 共74页
点击查看更多>>
资源描述
让IT教学更简单,让IT学习更有效让IT教学更简单,让IT学习更有效第三章PHP 操作数据库PHP连接数据库MYSQLI扩展数据库的操作数据表的操作数据信息的排序数据信息的操作让IT教学更简单,让IT学习更有效 目录3.13.1【案例11】展示员工信息3.23.2【案例12】员工信息排序3.33.3【案例13】员工信息搜索3.43.4【案例14】分页显示信息3.53.5【案例15】添加与修改信息让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息案例案例分析分析需求分析:需求分析:在员工管理系统中,展示员工基本信息是十分重要的功能。该功能可以帮助公司更好的管理员工,例如可以通过查看员工基本信息来确定员工的工龄,也可以快速查找某个员工,得知其联系方式、家庭住址等,接下来我们就来开发展示员工信息功能。让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息设计思路:设计思路:(1)创建员工信息表,该表用于保存员工的详细信息(2)向员工表中添加数据,用于测试员工信息展示功能(3)为了让PHP能够操作mysql数据库,因此在php.ini配置文件中开启mysql扩展(4)通过mysql扩展提供的mysql_connect()函数来连接数据库案例案例分析分析让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息设计思路:设计思路:(5)设置字符集和选择数据库,用于指定字符集和要操作的数据库(6)编写SQL查询语句,并使用mysql扩展提供的mysql_query()函数执行,取得结果集(7)使用mysql_fetch_assoc()函数处理结果集,然后保存到数组中(8)创建视图文件,将处理后的员工信息显示到页面中案例案例分析分析让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息案例案例展示展示【案例11】员工信息列表让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息实现步骤实现步骤具体实现步骤如下:点击查看案例11让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息知识点讲解知识点讲解1、数据库扩展2、连接和选择数据库3、执行SQL语句4、处理结果集5、释放资源让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息1、数据库扩展、数据库扩展(1)mysqli扩展mysqli扩展是mysql的增强版扩展,它是MySQL4.1及以上版本提供的功能。mysqli扩展在默认情况下已经安装好了,需要开启时,在php.ini配置文件中找到下面的配置项,去掉分号注释即可。修改后重新启动Apache,然后通过phpinfo()函数查看mysqli扩展是否开启成功。;extension=php_mysqli.dll让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息1、数据库数据库扩展扩展(2)PDO扩展在早期的PHP版本中,由于不同数据库扩展的应用程序接口互不兼容,导致PHP所开发的程序的维护困难、可移植性差。为了解决这个问题,PHP开发人员编写了一种轻型、便利的API来统一操作各种数据库,即数据库抽象层PDO扩展。让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息1、数据库数据库扩展扩展(2)PDO扩展需要开启时,在php.ini配置文件中找到去掉分号注释即可。修改完成后重新启动Apache,可通过phpinfo()函数查看PDO扩展是否开启成功。;extension=php_pdo_mysql.dll让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息知识点讲解知识点讲解1、数据库扩展2、连接和选择数据库3、执行SQL语句4、处理结果集5、释放资源让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息2、连接和选择连接和选择数据库数据库在【案例11】中我们知道了mysql扩展连接数据库使用的函数:需要注意的是,在填写数据库服务器地址的时候,还需要指定数据库的端口号。如果不指定该参数,则会使用mysql数据库的默认端口3306。mysql_connect()让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息2、连接和选择连接和选择数据库数据库在选择数据库时,是通过mysql_query()函数执行“use 数据库名”这条SQL语句来实现的。实际上mysql扩展还提供了一个函数来实现数据库的选择,那就是mysql_select_db(),其声明方式如下:bool mysql_select_db(string$database_name,resource$link_identifier )让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息2、连接和选择连接和选择数据库数据库在上述声明中,参数$database_name表示要选择的数据库名称,可选参数$link_identifier表示MySQL连接,默认使用最近打开的连接;如果没有找到该连接,则尝试不带参数调用mysql_connect()来创建;如果没有找到并无法建立该连接,则会生成E_WARNING级别的错误。让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息知识点讲解知识点讲解1、数据库扩展2、连接和选择数据库3、执行SQL语句4、处理结果集5、释放资源让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息3、执行执行SQL语句语句在MySQL数据库中,通过执行SQL语句可以实现数据库的增、删、改、查等操作。而PHP操作MySQL同样使用SQL语句,不过需要借助mysql_query()函数来执行SQL语句。mysql_query()函声明方式如下:resource mysql_query(string$query,resource$link_identifier=NULL)让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息3、执行执行SQL语句语句在上述声明中$query表示SQL语句,$link_idenifier是可选项,表示MySQL连接标识,若省略,则使用最近打开的连接,该函数的返回值是资源类型数据。让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息知识点讲解知识点讲解1、数据库扩展2、连接和选择数据库3、执行SQL语句4、处理结果集5、释放资源让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息4、处理结果处理结果集集(1)mysql_fetch_row()函数该函数的作用是从结果集中读取出一条数据,以索引数组的形式返回。其声明方式如下:当该函数执行成功后,会自动读取下一条数据,直到结果集中没有下一条数据时为止。array mysql_fetch_row(resource$result)让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息4、处理结果处理结果集集(2)mysql_fetch_array()函数该函数可以看做mysql_fetch_row()函数与mysql_fetch_assoc()函数的集合体,它会将结果集中的数据分别以索引数组和关联数组的形式返回。其声明方式如下:array mysql_fetch_array(resource$result,int$result_type )让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息4、处理结果处理结果集集(2)mysql_fetch_array()函数由于该函数可以同时返回索引数组和关联数组,因此该函数提供了一个可选参数$result_type,其值可以是MYSQL_BOTH(默认参数),MYSQL_ASSOC或MYSQL_NUM中的一种,其中MYSQL_ASSOC只得到关联索引形如mysql_fetch_assoc(),MYSQL_NUM只得到数字索引形如mysql_fetch_row()。让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息4、处理结果处理结果集集(3)mysql_fetch_object()函数函数mysql_fetch_object与mysql_fetch_array()类似,只有一点区别,即前者返回的是一个对象而不是数组,其声明方式如下所示:在上述声明中,参数$result是调用mysql_query()函数返回的结果集,由于该函数的返回值类型是object类型,所以只能通过字段名来访问数据,并且此函数返回的字段名大小写敏感。object mysql_fetch_object(resource$result)让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息5、释放资源释放资源(1)mysql_free_result()由于从数据库查询到的结果集都是加载到内存中的,因此当查询的数据十分庞大时,如果不及时释放就会占据大量的内存空间,导致服务器性能下降。而清除结果集就需要使用mysql_free_result()函数,其声明方式如下:该函数的返回值类型是布尔类型,执行成功返回TRUE,执行失败返回FALSE。bool mysql_free_result(resource$result)让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息5、释放资源释放资源(2)mysql_close()数据库连接也是十分宝贵的系统资源,一个数据库能够支持的连接数是有限的,而且大量数据库连接的产生,也会对数据库的性能造成一定影响。因此可以使用mysql_close()函数及时的关闭数据库连接,其声明方式如下:bool mysql_close(resource$link_identifier=NULL )让IT教学更简单,让IT学习更有效3.1【案例11】展示员工信息5、释放资源释放资源(2)mysql_close()在上述声明中,函数的返回值类型是布尔型,成功时返回TRUE,失败时返回FALSE。$link_identifer代表要关闭的MySQL连接资源。如果没有指定$link_identifer,则关闭上一个打开的连接。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序案例案例分析分析需求分析:需求分析:在录入员工信息数据时,员工的所属部门、入职时间等都是不可预料的。因此员工信息表中的员工数据,展示到页面中是没有任何顺序可言的。大量的员工信息无序的排列显示,对用户查看员工信息很不方便。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序案例案例分析分析需求分析:需求分析:为解决这类问题,就可以通过为特定字段添加排序功能来对员工信息进行排序显示。接下来就在【案例11】的基础上,为员工信息表中的“所属部门”和“入职时间”添加排序功能,来实现员工信息的排序显示。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序设计思路:设计思路:(1)向员工表添加更多测试数据,用来更直观的展现排序功能。(2)修改视图文件,为员工表的“所属部门”及“入职时间”创建排序链接。(3)定义合法排序字段,用于验证请求的排序字段是否为规定的排序字段。(4)把参数信息与定义的合法排序字段进行匹配,完成排序的关键SQL语句。案例案例分析分析让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序设计思路:设计思路:(5)更新排序链接的排序状态值,完成正序排序和倒序排序的切换。(6)判断是否需要排序,如果需要则组合order by子句。(7)创建视图文件,将处理后的员工信息显示到页面中。案例案例分析分析让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序案例案例展示展示【案例12】员工信息排序让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序实现步骤实现步骤具体实现步骤如下:点击查看案例12让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序知识点讲解知识点讲解1、orderby排序语法2、in_array()函数3、isset()的使用让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序1、order by排序语法排序语法order by是对查询结果进行排序的SQL子句,使用order by对查询结果进行排序,其语法格式如下:在上面的语法格式中,指定的字段名1、字段名2等是对查询结果排序的依据。参数ASC表示按照升序进行排序,DESC表示按照降序进行排序。默认情况下,按照ASC方式进行排序。SELECT 字段名1,字段名2,FROM 表名ORDER BY 字段名1 ASC|DESC,字段名2 ASC|DESC让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序知识点讲解知识点讲解1、orderby排序语法2、in_array()函数3、isset()的使用让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序2、in_array()函数函数的的使用使用在【案例12】中,我们把合法的排序字段保存到了一个数组中。当需要排序时,先判断排序字段是否存在于这个数组中,这样可以帮助我们避免URL地址被修改后出现非法字段导致程序错误。in_array()函数可以在我们检验字段是否合法时使用,其语法格式如下:in_array(value,array,type)让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序2、in_array()函数函数的的使用使用上述语法中,value是必选参数,表示要在数组中搜索的值。array是必选参数,表示要搜索的数组。type是可选参数,如果该参数设置为true,则会检查搜索的数据与要搜索的数组中的值在数据类型上是否相等。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序知识点讲解知识点讲解1、orderby排序语法2、in_array()函数3、isset()的使用让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序3、isset()函数的函数的使用使用在开发过程中,经常需要通过判断某个变量是否存在,来决定下面的业务逻辑。而判断变量是否存在常用的函数有两个:isset()、empty()让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序3、isset()函数的函数的使用使用这两个函数都是用来判断变量是否存在的,都会返回布尔值。但是两者的判断条件有些许差异,在使用empty()函数判断时,、0、0、NULL、FALSE、array()以及没有任何属性的对象都将被认为是空的。而在使用isset()函数判断时,如果变量不存在、变量存在且其值为NULL,返回 FALSE,如果变量存在且值不为NULL,则返回 TRUE。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序案例案例分析分析需求分析:需求分析:员工排序功能可以帮助用户快速将员工数据按照一定规律排列显示,但是用户仍然需要面对大量的信息数据,这在进行员工筛选的时候非常不便。因此还需要有一种快捷方法,可以根据某些条件,进行快速查询,仅把符合查询条件的数据从数据表中查询出来并输出到页面中。让IT教学更简单,让IT学习更有效3.2【案例12】员工信息排序案例案例分析分析需求分析:需求分析:这就是员工信息搜索功能,接下来我们在【案例11】的基础上,添加信息搜索功能。让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索设计思路:设计思路:(1)为视图页面添加搜索表单,用来传递搜索条件。(2)获取查询条件,对表单提交的查询关键字进行安全处理,最后组成where条件。(3)生成SQL语句,执行并获取结果集,处理结果集以便显示。(4)载入html模板文件,显示最终搜索结果。案例案例分析分析让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索案例案例展示展示【案例13】员工信息搜索让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索实现步骤实现步骤具体实现步骤如下:点击查看案例13让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索知识点讲解知识点讲解1、转义SQL特殊字符2、SQL中like使用让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索1、mysql_real_escape_string()该函数用于转义SQL语句字符串中的特殊字符,语法格式如下:其中$sql是必选参数,表示被转义的SQL语句字符串。$link是可选参数,表示mysql连接,如果未指定,则使用上一个mysql连接。因此使用该函数之前,一定要先连接mysql数据库。mysql_real_escape_string($sql,$link)让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索知识点讲解知识点讲解1、转义SQL特殊字符2、SQL中like使用让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索2、SQL中中like使用使用在SQL语句中,like操作符用于在where子句中搜索列中的指定模式。其语法格式如下:select column_name(s)from table_name where column_name like pattern让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索2、SQL中中like使用使用现在以emp_info表为例,如果希望从中选取姓名以“李”开头的所有人,则可以使用下面的select语句:其中“%”表示这里可以匹配任意字符。select*from emp_info where e_name like 李%让IT教学更简单,让IT学习更有效3.3【案例13】员工信息搜索2、SQL中中like使用使用如果希望从中选取姓名以“三”结尾的所有人,则可以使用下面的select语句:通过使用NOT关键字,从emp_info表中选取姓名中不包含“李”的所有人,则可以使用下面的select语句:select*from emp_info where e_name not like%李%select*from emp_info where e_name like%三让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息案例案例分析分析需求分析:需求分析:公司的员工通常有数百人甚至上千人,这么多的员工数据一次性查询并显示的话,不仅效率不高而且没有意义。为了提高查询效率和用户体验,常用的做法就是将数据进行分页显示,每一页显示指定数量的员工信息,当需要查看更多员工信息时,点击“下一页”进行翻页查看即可。接下来就在【案例11】的基础上,进行分页显示信息功能的开发。让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息设计思路:设计思路:(1)修改php文件,使用limit子句实现分页获取数据。(2)创建页码链接,通过页码链接传递页码信息。(3)计算最大分页数,并通过$_GET获取当前请求的页码信息。(4)读取结果集,对数据进行处理,最后载入视图以显示数据。(5)在视图页面中,添加创建好的页码链接。案例案例分析分析让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息案例案例展示展示【案例13】分页显示信息让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息实现步骤实现步骤具体实现步骤如下:点击查看案例14让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息知识点讲解知识点讲解1、limit的使用2、分页链接生成函数让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息1、limit的使用的使用通过【案例14】我们知道,实现分页的核心原理是利用SQL语句的limit子句。limit子句需要两个参数,第一个参数表示查询的数据起始位置,第二个参数表示要获取的数据量。实际上第一个参数也是可以省略的,当省略第一个参数时,会默认从数据表的第一条数据开始获取指定数量的数据,代码示例如下:上述代码的含义是,从emp_info表中获取前10条数据。select*from emp_info limit 10让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息知识点讲解知识点讲解1、limit的使用2、分页链接生成函数让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息2、分分页链接页链接生成函数生成函数一个完善的员工信息展示页,应同时具有排序、搜索、分页等功能。并且各个功能之间可以相互配合,例如在某种排序下,同样可以进行分页显示。这种功能的实现,就需要在分页链接中保留排序状态,下面我们就把生成分页链接的代码进行重新编写,将其封装为函数并能够生成保留其他GET信息的分页链接,具体代码如下:让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息2、分页链接生成函数分页链接生成函数/*分页链接生成函数*param$page int GET传递的page值*param$max_page int 最大页码值*/function makePageHtml($page,$max_page)/设置变量,保留GET参数$prams=;/删除GET参数中的pageunset($_GETpage);/循环遍历$_GET数组,重新拼接URL中的GET参数foreach($_GET as$k=$v)$prams.=$k=$v&;/计算下一页$next_page=$page+1;让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息2、分页链接生成函数分页链接生成函数/判断下一页的页码是否大于最大页码值,如果大于则把最大页码值赋值给它if($next_page$max_page)$next_page=$max_page;/计算上一页$prev_page=$page-1;/判断上一页的页码是否小于1,如果小于则把1赋值给它if($prev_page 1)$prev_page =1;/重新拼接分页链接的html代码$page_html=首页 $page_html.=上一页 $page_html.=下一页 $page_html.=尾页 /返回分页链接return$page_html;让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息2、分分页链接页链接生成函数生成函数上述代码中,第7行先定义一个变量$prams并赋值空字符串,该变量用来保存所有GET参数。第9行代码用来删除$_GET数组中的page元素。再通过第1113行代码循环$_GET数组得到其他GET参数,并把这些参数按照URL中GET参数的形式重新拼接并赋值给$prams。让IT教学更简单,让IT学习更有效3.4【案例14】分页显示信息2、分分页链接页链接生成函数生成函数接着开始计算下一页,判断下一页的页码是否大于最大页码值,如果大于则把最大页码值赋值给它。然后计算上一页,判断上一页的页码是否小于1,如果小于则把1赋值给它。最后拼接分页链接的html代码,在这个链接中,需要把其他GET参数与当前页码连接起来。让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息案例案例分析分析需求分析:需求分析:公司的员工通常有数百人甚至上千人,这么多的员工数据一次性查询并显示的话,不仅效率不高而且没有意义。为了提高查询效率和用户体验,常用的做法就是将数据进行分页显示,每一页显示指定数量的员工信息,当需要查看更多员工信息时,点击“下一页”进行翻页查看即可。接下来就在【案例11】的基础上,进行分页显示信息功能的开发。让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息设计思路:设计思路:(1)编写公用函数库文件,封装常用的数据库操作。(2)修改showList.php文件,引入公共函数库文件,简化程序代码。(3)修改list_html.php文件,增加“添加员工”的功能。(4)编写员工添加页面,通过表单可以输入新员工信息。案例案例分析分析让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息设计思路:设计思路:(5)编写添加员工功能,用来处理POST提交的员工数据并组成SQL语句以便添加。(6)通过GET参数传递员工ID,实现员工修改功能。案例案例分析分析让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息案例案例展示展示【案例15】添加与修改信息让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息实现步骤实现步骤具体实现步骤如下:点击查看案例15让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息知识点讲解知识点讲解1、添加数据2、修改数据让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息1、添加数据添加数据添加数据的第一个步骤,就是通过表单收集要添加的数据。这里使用form标签组成表单页面,利用文本框来构建数据输入框,最后以POST方式提交给目标文件。然后在目标文件中以$_POST超全局数组获取用户输入的数据,此时需要考虑数据安全性。因此我们需要调用转义数据HTML标签及特殊字符的方法来完成数据的安全性处理。让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息1、添加数据添加数据接着就是拼接用于添加数据的SQL语句,这里主要通过获取$_POST超全局数组中的键作为数据表字段、值作为数据插入值,来完成insert语句的字段名及字段值的组成。让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息知识点讲解知识点讲解1、添加数据2、修改数据让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息2、修改修改数据数据修改数据实际上与添加数据类似,区别在于,修改数据需要先获取到某一个员工的数据信息。这可以通过“编辑员工”的超链接来传送当前员工的员工ID,再根据这个员工ID使用select语句配合where条件查询到这个员工的详细数据,最后把这个详细数据展示到form表单中。接下来就是通过form表单将改动后的员工数据提交给目标文件empUpdate.php,由目标文件进行安全性处理后,组合SQL语句到update语句中。让IT教学更简单,让IT学习更有效3.5【案例15】添加与修改信息2、修改修改数据数据与添加不同的是,update语句需要知道修改的数据是哪一条,因此需要一个字段来确定修改的员工信息,这就是员工ID。form表单的method属性在不填写的情况下,默认会选择当前访问的地址,因此就可以把员工ID一并以GET方式提交给请求页面。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!