首页 第11章 PHP访问MySQL数据库

第11章 PHP访问MySQL数据库

举报
开通vip

第11章 PHP访问MySQL数据库null第11章 PHP访问MySQL数据库第11章 PHP访问MySQL数据库使用PHP访问MySQL数据库,要使用PHP提供的MySQL函数库。本章不仅会介绍使用这些函数,访问MySQL数据库的一般步骤,还将介绍如何把这些函数组织成类,演示进阶访问MySQL的方法。同时介绍一个第三方的数据库链接类ADODB。11.1 使用PHP访问MySQL11.1 使用PHP访问MySQL无论是自建的PHP访问类,还是第三方的数据库链接类,其核心都是使用PHP的MySQL函数实现的,本节主要介绍这些函数,及其访问My...

第11章  PHP访问MySQL数据库
null第11章 PHP访问MySQL数据库第11章 PHP访问MySQL数据库使用PHP访问MySQL数据库,要使用PHP提供的MySQL函数库。本章不仅会介绍使用这些函数,访问MySQL数据库的一般步骤,还将介绍如何把这些函数组织成类,演示进阶访问MySQL的方法。同时介绍一个第三方的数据库链接类ADODB。11.1 使用PHP访问MySQL11.1 使用PHP访问MySQL无论是自建的PHP访问类,还是第三方的数据库链接类,其核心都是使用PHP的MySQL函数实现的,本节主要介绍这些函数,及其访问MySQL的步骤。11.1.1 建立与关闭链接11.1.1 建立与关闭链接在PHP中要想操作数据库,必须先与数据库建立一个链接,与MySQL数据库建立链接的是mysql_connect()函数。在操作完数据库后,需要使用mysql_close()函数来释放资源,下面演示mysql_connect()和mysql_close()函数的使用方法,代码如清单所示。11.1.2 选择数据库11.1.2 选择数据库建立数据库链接后,需要使用mysql_select_db()函数,来指定一个数据库。下面演示mysql_select_db()函数的使用方法,代码如清单示。 清单 mysql_select_db()函数的使用方法 11.1.3 运行SQL语句11.1.3 运行SQL语句服务器安装了MySQL后,会提供数据存储及查询服务等操作,而这些操作都是通过SQL语句实现的,要在PHP中可以使用mysql_query()函数,执行关于MySQL的SQL语句。 mysql_query()函数有2个参数: 第1个参数是必选参数,值是用于指定要运行的SQL语句。 第2个参数是可选参数,其值是使用mysql_connect()打开的数据库句柄,当这个参数被设置后,将在指定的数据库链接中选择数据库。当这个参数为空时,使用上一个打开的数据库链接。11.1.4 数据库编码11.1.4 数据库编码在使用phpMyAdmin创建learn数据库时,使用了gb2312_chinese_ci作为整理字符,而MySQL默认是使用latin1编码,来读取数据库数据的,这时就会产生编码冲突,使存储或读取的数据,产生乱码现象。为了解决这个问题,可以在选择数据库后,使用SQL语句来改变默认的字符集,演示代码如清单所示。 清单 改变MySQL默认编码 11.1.5 以数字作为键名处理一行返回结果11.1.5 以数字作为键名处理一行返回结果在使用mysql_query()运行SELECT语句后,会返回一个资源句柄,在PHP中要使用特定的函数来处理返回的结果集,这些函数中的mysql_fetch_row()函数,可以从结果集中取出一行,作为数组使用。下面介绍mysql_fetch_row()函数的使用方法,11.1.6 以字段作为键名处理一行返回结果11.1.6 以字段作为键名处理一行返回结果使用mysql_fetch_assoc()函数,可以从结果集中取出一行,作为数组使用,并使用表中的字段数作为单元的键名。下面介绍mysql_fetch_assoc()函数的使用方法,代码如清单所示。11.1.7 更灵活的结果处理函数11.1.7 更灵活的结果处理函数使用mysql_fetch_array()函数,可以从结果集中取出一行,作为数组使用,并可根据参数来设置数组单元的键名。下面介绍mysql_fetch_array()函数的使用方法,代码如清单所示。11.1.8 对象与结果集11.1.8 对象与结果集使用mysql_fetch_object()函数,可以从结果集中取出一行,作为对象来使用。下面介绍mysql_fetch_object()函数的使用方法,11.1.9 错误信息的处理11.1.9 错误信息的处理由于链接数据,以及读取、操作数据库数据的不确定性,很容易因此产生错误。对于错误信息有两种解决方法,一种是错误信息控制符,忽略产生的错误信息,继续执行脚本;另一种就是当错误产生时,尽可能的输出详细的错误信息,以便于用来找到脚本产生错误的地方。下面介绍当MySQL函数产生错误时,错误信息的处理方法, 用于显示MySQL函数错误信息的有两个函数: mysql_errno()函数,用来返回MySQL函数产生的错误代码。 mysql_error()函数,用来返回MySQL函数的错误信息。11.1.10 其他MySQL函数11.1.10 其他MySQL函数除了之前介绍的MySQL函数外,本小节还将通过代码的形式,介绍一些比较常用的MySQL函数,mysql_affected_rows()函数,用于返回UPDATE、DELETE、INSERT语句运行后,对数据库记录的影响后的记录数。mysql_affected_rows()函数只有一个可选参数,其值是mysql_connect()建立的数据库链接。 mysql_insert_id()函数,用于返回表中某字段,上一次运行INSERT语句后产生的ID值,与之对应的表中的字段属性,必须具备AUTO_INCREMENT属性。当INSERT语句没有产生AUTO_INCREMENT值时,将返回0。 mysql_insert_id()函数返回的是上一次运行INSERT语句产生的AUTO_INCREMENT值,要想得到最新的AUTO_INCREMENT值,可以使用last_insert_id()函数来取得。11.2 使用自建类对MySQL进行访问11.2 使用自建类对MySQL进行访问在11.1节中介绍了MySQL的相关函数,以及操作数据库的一般步骤。在实际使用中,要想更灵活的使用这些函数,可以创建一个类来组织这些函数,在类中可以使用简单的对象名,来替换复杂的MySQL函数名。 本节将使用类的相关知识,编写一个拥有大部分MySQL函数功能的类,并把其应用在实际使用中。读者可以从本节了解类的创建,以及相关的 知识点 高中化学知识点免费下载体育概论知识点下载名人传知识点免费下载线性代数知识点汇总下载高中化学知识点免费下载 。11.2.1 创建MySQL类11.2.1 创建MySQL类在创建类之前,应该大体了解类要完成的功能。本小节要创建的类,会完成操作数据库的一般步骤,即建立数据库链接、表名称前缀、运行SQL语句、返回值的处理、错误信息处理等功能。在要实现的功能中,有一些需要特别注意的地方: 数据库链接:些功能实现时,不只是单纯的mysql_connect()函数的重复,有关于数据库链接的编码,要操作的数据库,以及表的前缀都有涉及到。 表名称前缀:在一个数据库同时存在很多表,而这些表属于不同系统时,可以通过表名称前缀,来区分表属于那个系统,例如:test_user、test_buy。 SQL语句:解析SQL语句中的特殊字符,替换表名称前缀等功能,例如把SQL语句中的“#_”符号替换成“test_”。 返回值:以表格形式返回值、以行形式返回值、以数组形式返回值、以对象形式返回值。 错误信息:返回出错的SQL语句、错误代码及错误信息。 最新ID:返回上一次运行INSERT语句,产生的ID值。 结果集:返回结果集中记录的条数。11.2.2 自建类的使用11.2.2 自建类的使用清单11.11中的代码,包括了访问数据的各个函数,但在实际使用中,和本章一开始了解的访问数据库的方法有所不同,下面演示自建类访问数据库的方法, 使用自定义类访问数据的步骤: (1)使用new关键词实例化类,并设置初始参数。 (2)使用setSql()方法,设置SQL语句。 (3)使用query()方法,运行SQL语句。 (4)使用loadRow()、loadRowList()、loadObject()、loadObjectList()函数,以数组形式返回结果集的内容。 11.2.3 与SQL有关的方法11.2.3 与SQL有关的方法在自定义类中与SQL有关的方法有3个,其各自有不同的用途。 setSql()方法用于处理SQL语句,去掉SQL语句中左右两边的空格,并替换根据参数,替换表名称前缀。假设类始化时设置的表名称前缀是“test”,使用setSql()方法设置SQL语句“select * from #_user ”后,返回的字符串将是“select * from test_user”。 getSql()用于返回setSql()方法设置好的SQL语句。 query()用于运行setSql()方法设置好的SQL语句。11.2.4 与返回值相关的方法11.2.4 与返回值相关的方法在自定义类中与SQL有关的方法有4个,其各自有不同的用途。 loadRow()方法用于返回结果集中的一条记录。 loadRowList()方法用于返回结果集中的所示记录。 loadObject()方法用于返回结果集中的一条记录作为对象。 loadObjectList()方法用于返回结果集中的所有的记录作为对象。11.2.5 与错误信息相关的方法11.2.5 与错误信息相关的方法在自定义类中与错误信息相关的方法是getError()函数,下面介绍如何使用此方法,代码如清单所示。 清单 与错误信息相关的方法 setSql($sql); //运行sql语句 $db->query(); echo "显示错误信息
"; echo $db->getError(); echo "
"; echo "显示带SQL语句的错误信息
"; echo $db->getError(true); ?>11.2.6 与表有关的方法11.2.6 与表有关的方法在自定义类中与表有关的方法有2个,其各自有不同的用途。 getTableCreateSQL()方法用于取得创建表的SQL语句,并通过数组方式返回。 getTableFields()用于取得指定表的字段,并通过数组方式返回。11.2.7 其他方法11.2.7 其他方法在自定义类中的getLines()方法用于获取结果集中的记录数,lastid()方法用于获取最后一次运行INSERT语句,自动产生的ID值。getVersion()方法用于取得MySQL数据库版本。11.3 使用ADODB访问MySQL11.3 使用ADODB访问MySQLPHP支持的数据库非常多,但是链接各个数据库的函数,都存在着差异。要想使一个程序,同时支持多种不同的数据,就需要一个灵活的类来实现。11.2节中介绍的自定义类,只能完成MySQL数据库的操作,要想使用1个方法,访问不同的数据库,可以使用ADODB类库。 ADODB是一个第三方的PHP类,其支持的数据库包括MySQL、PostgreSQL、Interbase、Firebird、Informix、Oracle、MS SQL、Foxpro、Access、ADO、Sybase、FrontBase、DB2、SAP DB、SQLite、Netezza、LDAP、ODBC、ODBTP等。本节主要介绍ADODB的安装及使用方法。11.3.1 ADODB安装11.3.1 ADODB安装ADODB是用于操作数据库的类,其可以使用统一的方法,访问不同的数据库,这使得用户在不需要更改源代码的情况下,在不同类型的数据之间切换。 要取得ADODB,可以从网站http://sourceforge.net/projects/adodb/处下载,本书使用的ADODB版本的下载地址是:http://nchc.dl.sourceforge.net/sourceforge/adodb/adodb502a.zip。 ADODB的安装很简单,只需要把下载的文件解压缩,并把解压缩后文件夹,复制到指定目录即可。本书将在learn项目中使用ADODB,所以将把解压缩后的adodb5文件夹,复制到APACHE文档根目录下的learn文件夹内。11.3.2 使用ADODB链接MySQL11.3.2 使用ADODB链接MySQL使用ADODB链接数据库,必须要在链接数据库的脚本中,包含adodb.inc.php文件。下面演示ADODB链接MySQL数据库的方法,代码如清单所示。11.3.3 使用ADODB插入记录11.3.3 使用ADODB插入记录使用ADODB播入记录,也是通过运行SQL实现的,同时ADODB还可以根据参数生成INSERT语句。下在演示使用ADODB插入记录到MySQL数据的方法,代码如清单所示。11.3.4 使用ADODB取出记录11.3.4 使用ADODB取出记录使用ADODB的Execute()方法,运行SELECT语句后,返回的结果集,可以通过两种方法显示出来,下面演示如何使用这两种方法,11.3.5 使用ADODB更新记录11.3.5 使用ADODB更新记录使用ADODB更新记录,可以使用UPDATE语句实现的,也可以通过GetUpdateSQL()方法创建SQL语句来实现更新数据,下面演示更新数据的方法,11.3.6 使用ADODB删除记录11.3.6 使用ADODB删除记录使用ADODB删除记录,可以使用DELETE语句实现的,下面演示删除记录的方法,代码如清单(详细内容请参照本书)11.3.7 使用ADODB实现分页11.3.7 使用ADODB实现分页在操作数据库记录时,除了插入、选择、更新、删除记录外,实现最多的就是分页功能了。使用MySQL函数实现分页比较简单,本节将使用ADODB类实现分页功能,代码如清单所示。11.3.8 使用ADODB输出CSV文件11.3.8 使用ADODB输出CSV文件CSV作为一种 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 格式的文件,可以被很多软件所兼容。通过包含toexport.inc.php文件,可以轻松把数据库记录输出为CSV文件。下面演示ADODB输出CSV文件的方法,代码如清单所示。11.4 常见问题11.4 常见问题本章主要介绍了PHP中,与MySQL相关的函数。同时介绍了使用MySQL函数、自定义类、ADODB类库访问MySQL的方法。本节将列出一些容易产生错误的问题,进行解答。11.4.1 链接数据库11.4.1 链接数据库通过本章的介绍,读者可以了解到三种链接MySQL数据库的方法。这三种方法,并不能说那一种最好用,而应该根据实际情况来选择。 使用MySQL函数链接数据库,是最简单的方法,其不需要包含文件,不需要初始化对象,适合于简单脚本操作数据库时使用。 使用自定义类操作数据库,可以应用在一些小型的,单数据库项目中,这些项目别不需要支持多种类型的数据库,也就没有必要包含庞大的ADODB类库。 使用ADODB操作数据库,主要用于增加项目的可移植性,还可以使项目支持多种类型的数据库,并且可以简单操作步骤,提高代码质量,加快开发速度等。11.4.2 字符集11.4.2 字符集在MySQL5.0以后的版本中,创建数据库时,都需要指定一个字符集,默认的字符集是latin1。 当使用latin1作为默认字符集时,存储和读取中文字符,都会出现一些关于乱码的错误。所以当项目中需要存储中文字符时,可以选择UTF-8或GB2312字符集作为整理字符集。 创建数据库时使用GB2312作为默认字符集后,创建的表都默认使用GB2312作为整理字符集。在PHP中读取数据记录时,也需要事先使用“SET NAMES GB2312”语句,设置字符集。
本文档为【第11章 PHP访问MySQL数据库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_588630
暂无简介~
格式:ppt
大小:1MB
软件:PowerPoint
页数:0
分类:
上传时间:2010-08-19
浏览量:17