1、第第1212章章 PHPPHP访问数据库访问数据库作为一种主流的网络编程语言,作为一种主流的网络编程语言,PHP提供了丰富的访问数提供了丰富的访问数据库的功能,而且其本身所支持的数据库类型也非常广泛,几据库的功能,而且其本身所支持的数据库类型也非常广泛,几乎可以支持所有的主流数据库。上一章已经为读者介绍了数据乎可以支持所有的主流数据库。上一章已经为读者介绍了数据库的相关知识,这一章就来介绍如何使用库的相关知识,这一章就来介绍如何使用PHP访问数据库,并访问数据库,并对数据库相关内容进行操作。通过本章内容的学习将会使读者对数据库相关内容进行操作。通过本章内容的学习将会使读者领会到领会到PHP的强
2、大,以及如何使用的强大,以及如何使用PHP对数据库进行操作,为对数据库进行操作,为使用使用PHP编写基于数据库的编写基于数据库的Web应用程序打下基础。应用程序打下基础。12.1 PHP12.1 PHP访问访问MySQLMySQL数据库数据库PHP支持几乎所有的数据库类型。其中,支持几乎所有的数据库类型。其中,PHP对对MySQL的支持是最为完美的。因此,的支持是最为完美的。因此,PHP与与MySQL也被也被称为称为“黄金组合黄金组合”。通过。通过PHP的易用性再加上的易用性再加上MySQL强大强大的数据库存储功能可以创建各种功能的的数据库存储功能可以创建各种功能的Web应用程序。本应用程序。
3、本节就来介绍如何使用节就来介绍如何使用PHP的的MySQL类函数来访问类函数来访问MySQL数据库。数据库。12.1.1 12.1.1 连接连接MySQLMySQL服务器服务器要想操作数据库,首先就要连接到要想操作数据库,首先就要连接到MySQL服务器。在上一服务器。在上一节介绍节介绍MySQL的常用操作时曾介绍过,用户可以使用客户端工的常用操作时曾介绍过,用户可以使用客户端工具具mysql.exe连接服务器。而在连接服务器。而在PHP中则可以通过使用中则可以通过使用PHP的的MySQL类函数类函数mysql_connect()来连接到来连接到MySQL服务器,其语服务器,其语法格式如下所示:
4、法格式如下所示:resource mysql_connect(string server,string username,string password,bool new_link,int client_flags)12.1.2 12.1.2 创建数据库创建数据库在在MySQL主机上创建新的数据库可以通过函数主机上创建新的数据库可以通过函数mysql_query()执行所创建数据库的执行所创建数据库的SQL语句来实现。函数语句来实现。函数mysql_query()的作用是执行指定的的作用是执行指定的SQL语句,其语法格式如下所示:语句,其语法格式如下所示:resource mysql_quer
5、y(string$query,resource$link_identifier)12.1.3 12.1.3 插入数据插入数据新创建的表中并没有任何内容,如果要向其中添加新新创建的表中并没有任何内容,如果要向其中添加新的内容就需要执行插入记录的的内容就需要执行插入记录的SQL语句。在上一章介绍的语句。在上一章介绍的SQL语法中,常见的插入记录语句语法中,常见的插入记录语句INSERT其格式如以下其格式如以下代码所示:代码所示:insert into 表名表名(字段名字段名1,字段名字段名2)values(值值1,值值2,)12.1.4 12.1.4 查询数据查询数据查查询询表表中中已已经经存存在
6、在的的记记录录可可以以通通过过函函数数mysql_query()执执行行SELECT查查询询SQL语语句句来来实实现现。不不过过在在PHP中中要要想想查查看看记记录录,除除了了执执行行SELECT查查询询之之外外,还还需需要要使使用用到到另另一一个个PHP的的MySQL类类函函数数msyql_fetch_array()。该该函函数数的的作作用用是是从从结结果果集集中中取取得得一一行行作作为为关关联联数数组组,其其语语法法格格式式如下所示:如下所示:array mysql_fetch_array(resource$result,int$result_type)12.1.5 12.1.5 修改数据
7、修改数据除了插入数据与查询数据,使用除了插入数据与查询数据,使用PHP还可以修改表中还可以修改表中已经存在的记录。要执行修改记录操作,只需要通过已经存在的记录。要执行修改记录操作,只需要通过PHP的的mysql_query()函数执行函数执行UPDATE语句即可。语句即可。12.1.6 12.1.6 删除数据删除数据与插入、查询、修改类似,通过使用与插入、查询、修改类似,通过使用mysql_query()函数执行函数执行SQL语句语句DELETE也可以实现对表中已经存在内也可以实现对表中已经存在内容进行删除的操作。执行删除操作时需要注意,与更新记容进行删除的操作。执行删除操作时需要注意,与更新
8、记录类似,通常需要为录类似,通常需要为DELETE语句添加语句添加WHERE子句以限子句以限定删除的条件。定删除的条件。12.1.7 12.1.7 数据库抽象类数据库抽象类PHP的数据库操作类中以的数据库操作类中以ADODB最为常用,该类功最为常用,该类功能非常强大,然而该类非常繁杂,内容非常广泛,执行起能非常强大,然而该类非常繁杂,内容非常广泛,执行起来也会占用更多的内存资源。为了解决这个问题,轻量化来也会占用更多的内存资源。为了解决这个问题,轻量化的的ADODB Lite就应运而生。新的版本支持了所有就应运而生。新的版本支持了所有PHP能能支持的流行数据库,而且比原来的老版本快了很多,只需
9、支持的流行数据库,而且比原来的老版本快了很多,只需要占用完整版的要占用完整版的1/6内存即可。本小节介绍的数据库抽象内存即可。本小节介绍的数据库抽象类就以类就以ADODB Lite为例来介绍。为例来介绍。12.2 PHP12.2 PHP操作操作SQLiteSQLite数据库数据库在本书的第在本书的第11.5节中为读者介绍了节中为读者介绍了SQLite数据库,与数据库,与MySQL相比相比SQLite数据库使用更为方便。因为其不需要数据库使用更为方便。因为其不需要配置、不需要安装也不需要管理员,只需要提供一个数据配置、不需要安装也不需要管理员,只需要提供一个数据库文件即可。而且库文件即可。而且S
10、QLite的迁移也更为方便,只需要把的迁移也更为方便,只需要把相关的数据库文件(一个文件)复制转移即可。相关的数据库文件(一个文件)复制转移即可。PHP也对也对SQLite数据库提供了支持。本节就来介绍一下如何实现数据库提供了支持。本节就来介绍一下如何实现使用使用PHP操作操作SQLite数据库。数据库。12.2.1 12.2.1 打开数据库打开数据库要打开一个要打开一个SQLite数据库可以使用函数数据库可以使用函数sqilte_open(),该函数的语法格式如下所示:该函数的语法格式如下所示:resource sqlite_open(string$filename,int$mode,str
11、ing&$error_message)12.2.2 12.2.2 创建表创建表要在打开的要在打开的SQLite数据库中创建表,可以通过函数数据库中创建表,可以通过函数sqlite_query()来执行建表来执行建表SQL语句来实现。该函数的语法格式如下所语句来实现。该函数的语法格式如下所示:示:resource sqlite_query(string$query,resource$dbhandle,int$result_type,string&$error_msg)12.2.3 12.2.3 插入记录插入记录与与MySQL插入记录类似,在插入记录类似,在SQLite中只需要使用中只需要使用sq
12、lite_query()函数执行插入记录语句即可实现插入操作。函数执行插入记录语句即可实现插入操作。12.2.4 12.2.4 浏览记录浏览记录与插入记录相同,使用与插入记录相同,使用sqlite_query()执行执行SELECT查询查询语句,即可实现浏览语句,即可实现浏览SQLite表中记录的操作。下面的实例演表中记录的操作。下面的实例演示了浏览示了浏览SQLite表中记录的操作。其中除了使用表中记录的操作。其中除了使用sqlite_query()函数之外,还使用到了获取结果集记录数函数函数之外,还使用到了获取结果集记录数函数sqlite_num_rows()以及取得一行作为关联数组函数以
13、及取得一行作为关联数组函数sqlite_fetch_array()。这。这两个二函数与两个二函数与MySQL类的同名函数用法及意义相同,这里类的同名函数用法及意义相同,这里不再详解。不再详解。12.3 PDO12.3 PDO操作数据库操作数据库PDO(PHP Data Object)是)是PHP的数据库对象扩展。的数据库对象扩展。该扩展为该扩展为PHP访问数据库定义了一个轻量级的、一致性的访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层。该扩展提供接口,它提供了一个数据访问抽象层。该扩展提供PHP内内置类置类PDO来对数据库进行访问,不同数据库使用相同的方来对数据库进行访
14、问,不同数据库使用相同的方法名,从而可以解决数据库连接不统一的问题。这一节就法名,从而可以解决数据库连接不统一的问题。这一节就来介绍如何使用来介绍如何使用PDO来操作数据库。来操作数据库。12.4 12.4 小结小结本章为读者介绍了如何使用本章为读者介绍了如何使用PHP访问数据库,其中详访问数据库,其中详细介绍了如何使用细介绍了如何使用PHP访问访问MySQL数据库,如何使用数数据库,如何使用数据库抽象类据库抽象类ADODB Lite、如何使用、如何使用PHP操作操作SQLite数据数据库以及如何使用库以及如何使用PDO操作数据库。其中的重点与难点是操作数据库。其中的重点与难点是PHP访问访问MySQL数据库部分,该部分是其他操作的基础。数据库部分,该部分是其他操作的基础。因为其他类的操作都具有相似之外,只要掌握了该类操作因为其他类的操作都具有相似之外,只要掌握了该类操作对于其他内容操作则可以触类旁通,举一反三。对于其他内容操作则可以触类旁通,举一反三。