ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:297.29KB ,
资源ID:5255390      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5255390.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MySQL高级应用技术技术.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MySQL高级应用技术技术.docx

1、MySQL高级应用技术技术9.1 PHP的mysqli扩展在PHP5.0以后的版本中,不仅可以使用早期的MySQL数据库操纵函数,而且还可以使用mysqli扩展技术实现与MySQL数据库的信息交流。利用mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。实例254 通过mysqli扩展技术实现数据库信息的检索实例说明在实际Web工程开发过程中,经常需要对大量信息进行检索,为了营造一种稳定快速的查询环境,本实例将介绍如何利用mysqli扩展技术实现商品信息的检索。运行本实例,如图9.1所示,在图中文本框中输入要查找的商品名称,单击“查

2、找”按钮,如果该商品存在,则显示该商品的所有信息,否则提示没有查找到该商品。图9.1 商品信息检索技术要点本实例的关键技术是如何利用mysqli技术连接MySQL数据库,并实现数据库信息的检索。mysqli技术可以使用面向对象和面向过程两种编程思想,本实例将采用当今较为流行的面向对象的编程方式。采用面向对象的编程方式连接MySQL数据库,将通过PHP的预定义类mysqli实现,该类构造函数说明如下。mysqli类的构造函数一般由以下4个参数构成。hostname:MySQL服务器的地址或主机名。username:MySQL服务器中某用户的用户名。userpwd:MySQL服务器中某用户对应的用

3、户密码。databasename:MySQL服务器中某数据库的名称,该参数可省,如果省略了该参数,则需要利用mysqli的成员函数select_db()指定数据库名称。所以mysqli预定义类的实例化形式如下:new mysqli(string hostname, string username, string userpwd ,string databasename )。实现过程(1)建立如图9.1所示的页面,并建立conn.php文件实现与数据库的连接。代码如下:query(set names gb2312)。?(2)判断提交按钮的值是否为空,如果不为空则开始执行查询。如果查询到用户要查询

4、的商品,则显示商品的信息,否则提示没有查到该商品。该过程代码如下:query(select * from tb_goods where name like %.$name.%)。$info=$sql-fetch_array(MYSQLI_ASSOC)。if($info=NULL)echo 没有查找到该商品!。else?  。 商品名称 商品价格 商品数量 进货日期 fetch_array(MYSQLI_ASSOC)。? 举一反三根据本实例,读者可以: 利用mysqli扩展技术,实现指定进货时间段内的商品信息检索。 利用mysqli扩展技术,实现论坛中注册用户信息的模糊查找。实例255

5、查看服务器连接错误报告实例说明作为PHP的黄金搭档MySQL数据库,在PHP工程开发过程中有着举足轻重的作用,这不仅因为MySQL是完全免费的,而且和PHP一样都是完全跨平台的。但在实际工程开发过程中,PHP与MySQL数据库产生连接错误是不可避免的,本实例将讲解如何实现尽可能早地发现这种连接错误。运行本实例,分别如图9.2及图9.3所示,图中错误的原因都是当连接数据库服务器时,用户密码输入错误所致。图9.2 显示错误内容图9.3 显示错误号技术要点在mysqli扩展技术中,可以使用两种方式获得错误报告,第一种是直接获取错误的原因,第二种是获取连接错误所代表的错误号。直接获取错误的名称可以使用

6、函数mysqli_connect_error(),该函数的说明如下:string mysqli_connect_error(mysqli link)mysqli_connect_error()函数将返回一个错误消息,该消息对应利用mysqli扩展技术连接MySQL数据库时所产生的错误。获取连接MySQL数据库时产生的错误号可以使用函数mysqli_connect_errno(),该函数说明如下:int mysqli_connect_errno()如果在连接MySQL数据库服务器时出现了错误,就会产生一个该错误对应的消息数字,利用该函数就可以获取该数字。下面为连接MySQL数据库时可能发生错误的

7、错误号及错误内容:1045:Access denied for user 用户名用户密码 (user password: YES)上述错误代表用户密码输入错误。2005:Unknown MySQL server host MySQL数据库服务器名(11004)上述错误代表MySQL数据库服务器名输入错误2013:Loset connection to MySQL server during query上述错误代表在执行查询时失去与MySQL数据库的连接。实现过程(1)建立index.php文件,用于建立PHP与MySQL数据库的连接,并输入错误的用户密码。代码如下:(2)建立index_1.p

8、hp文件,用于建立PHP与MySQL数据库的连接,并输入错误的用户密码。代码如下:(3)分别执行index.php文件和index_1.php文件查看结果。举一反三根据本实例,读者可以: 输出MySQL数据库服务器名输入错误时的错误号。 输出MySQL数据库服务器名输入错误时的错误名称。实例256 通过mysqli扩展技术实现多表查询实例说明在实际的工程开发过程中,一个工程经常需要多个数据表来存储信息,并且这些表之间通过主键彼此相互联系。本实例将讲解如何实现多表之间的查询。运行本实例,如图9.4所示,图中的“学号”和“姓名”字段来自tb_student表,而其他字段来自tb_score表。图9

9、.4 显示查询的结果技术要点利用mysqli技术实现多表查询,关键是如何实现多表之间通过主键进行连接。下面是本实例实现多表查询的代码:$sql=$conn-query(select * from tb_student,tb_score wheretb_student.id=tb_score.sid)。实现多表之间的查询应在from关键字后列出所有的表名,并且表名之间用逗号进行分割。同时应在where关键字中指明多表之间的连接条件,例如本例中的tb_student.id=tb_score.sid,表明学生表和成绩表之间通过学生表的id字段和成绩表的sid字段进行连接。实现过程(1)建立conn.

10、php文件,实现与MySQL数据库之间的连接。代码如下:query(set names gb2312)。?(2)建立index.php文件,用于实现多表之间的查询,如果学生表和成绩表中有满足条件的记录,则显示这些记录,否则提示没有相关信息。代码如下:query(select * from tb_student,tb_score where tb_student.id=tb_score.sid)。$info=$sql-fetch_array(MYSQLI_ASSOC)。if($info=NULL) echo 暂无学生信息。 else do? fetch_array(MYSQLI_ASSOC)。?

11、举一反三根据本实例,读者可以: 实现检索多表信息同时分页显示。 实现检索多表信息同时降序输出。实例257 通过mysqli扩展技术实现内存的回收实例说明为了有效利用服务器的内存空间,在获取较大结果集时,一旦结束操作,则有必要回收集合所需要的内存,由于mysqli技术可以采用面向对象和面向过程两种编程方式,所以与之对应的内存回收方式就有两种,将通过本实例讲解内存回收机制在工程开发过程中的价值和使用方法。运行本实例,如图9.5所示,图中为某班级3门主科成绩,并在显示完该班成绩后,对内存进行了回收。图9.5 显示查询结果技术要点PHP为了迎合不同开发习惯的程序员,在mysqli扩展技术中提供了面向对

12、象和面向过程两种编程方式,所以实现内存回收也存在与之对应的两种方式。如果采用面向过程的编程方式可以通过如下函数实现内存回收:bool mysqli_close ( object link)link指mysqli_connect()函数返回的数据库连接句柄。如果采用面向对象的编程方式,可以通过如下语句实现:link-close()link指PHP预定义的mysqli类实例化后的对象。实现过程(1)建立conn.php文件,实现与MySQL数据库之间的连接。代码如下:query(set names gb2312)。?(2)通过dowhile循环显示该班级所有学生的成绩。代码如下:query(sel

13、ect * from tb_student,tb_score where tb_student.id=tb_score.sid)。 $info=$sql-fetch_array(MYSQLI_ASSOC)。 if($info=NULL) echo 暂无学生信息。 else do ? fetch_array(MYSQLI_ASSOC)。 (3)实现内存的回收。代码如下:$sql-close()。$conn-close()。举一反三根据本实例,读者可以: 在图书管理系统中,查询完图书信息后实现内存回收。 在聊天室中,用户每发一次信息实现一次内存回收。9.2 MySQL视图的应用视图也称虚表,包括执

14、行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。实例258 创建视图实例说明为了简化查询,在实际工程开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。运行本实例,如图9.6所示,分别在图中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密码,则给出错误提示,反之如果输入的用户名和密码正确,则提示成功登录。由于本实例采用视图建立了虚表,所以应首先在“命令提示符”下建立视图,如图9.7所示。图9.7 创建视图技术要点MySQL中创建视图可以通过create view语句来实现,具体创建格式如下

15、:create or deplace algorithm=merge | temptable | undefined view view_name ( column_list) as select_statement with cascaded | local check optionalgorithm=merge | temptable | undefined属性用于优化MySQL视图的执行,该属性有3个可用的设置。下面将介绍这3个设置的使用方法。merge:该参数使MySQL执行视图时传入的任何子句合并到视图的查询定义中。temptable:如果视图低层表中的数据有变化,这些变化将在下次通

16、过表时立即反映出来。undefined:当查询结果和视图结果为一一对应关系时,MySQL将algorithm设定为temptable。view_name:新建视图的名称。select_statement:SQL查询语句用于限定虚表的内容。实现过程(1)建立数据库及数据表,本实例中将数据表命名为tb_admin。(2)建立完数据表后,就可以在命令提示符下建立视图。创建视图的代码如下:create view chkadmin as select name, pwd from tb_admin创建完视图chkadmin后,该视图中只含有name和pwd两个字段,这样会给密码验证工作带来很大的方便。(

17、3)建立与MySQL数据库的连接。代码如下:(4)判断用户是否单击了“进入”按钮,如果是则通过视图chkadmin对用户身份进行验证。该过程代码如下:?phpif($_POSTsubmit!=)include_once(conn.php)。$name=$_POSTname。$pwd=$_POSTpwd。$sql=mysql_query(select * from chkadmin where name=.$name. andpwd=.$pwd.,$conn)。$info=mysql_fetch_array($sql)。if($info=false) echo alert(用户名或密码输入错误!

18、)。history.back()。 exit。else echo 登录成功!。?举一反三根据本实例,读者可以: 利用视图实现用户信息注册。 利用视图实现商品信息的降序输出。实例259 修改视图实例说明为了提高工作效率,对不满足条件的视图可以通过修改的方式进行更改。实现本实例,首先应在数据库中创建数据表tb_changeview,该表也可以在phpMyAdmin中创建,如图9.8所示。打开“命令提示符”窗口,创建视图userinfo,如图9.9所示。更改视图userinfo,如图9.10所示。图9.8 创建表changeview图9.9 创建新视图图9.10 修改视图技术要点MySQL中修改视图

19、可以通过alter view语句实现,alter view语句具体使用说明如下:alter view algorithm=merge | temptable | undefined view view_name (column_list) as select_statementwith cascaded | local check optionalgorithm:该参数已经在创建视图中作了介绍,这里不再赘述。view_name:视图的名称。select_statement:SQL语句用于限定视图。实现过程(1)建立数据库及数据表,本实例中将数据表命名为tb_changeview。(2)创建视图

20、userinfo。代码如下:create view userinfo as select * from tb_changeview(3)查询视图userinfo。代码如下:select * from userinfo查看执行结果,可以发现tb_changeview表中的所有的字段都一一列出。(4)下面开始修改视图,要求修改后只列出username字段。代码如下:alter view userinfo as select * from tb_changeview(5)重新查询视图userinfo,从结果中可以发现这时只列出username一个字段,从而说明视图修改成功。举一反三根据本实例,读者可以: 实现修改存储商品信息的视图。 实现修改存储用户注册信息的视图。实例260 应用视图实例说明在实际的Web开发过程中,多个数据表中可能有很多的字段,但某个模块可能只需要其中的几个字段。为了提高查询速度和简便操作,可以将该模块需要的字段单独提取出来放在某视图中,例如本实例涉及到学生表和成绩表,在建立的视图中只含有与学生成绩有关的字段,如图9.11所示。运行本实例,如图9.1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1