第16章 PDO数据库抽象层-【千锋教育】PHP从入门到精通
|
31页
|
97人阅读
|
0人下载
教辅
内容正文:
第16章 PDO数据库抽象层
PDO概述
使用PDO链接数据库
PDO中执行SQL语句
PDO获取结果集
PDO中的错误处理
PDO中的事务处理
PDO概述
使用PDO连接数据库
PDO中执行SQL语句
16.2
16.3
16.1
☞点击查看本小节知识架构
☞点击查看本小节知识架构
PDO中获取结果集
16.4
☞点击查看本小节知识架构
PDO中的错误处理
16.5
☞点击查看本小节知识架构
PDO中的事务处理
16.6
☞点击查看本小节知识架构
学习目标
了解
掌握
掌握
掌握
了解PDO的概念和PDO中错误处理的方法
1
掌握PDO中事务处理的方法
4
2
掌握PDO连接数据库和获取结果集的方法
3
掌握PDO执行SQL语句和捕获SQL语句中错误的方法
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
16.1 PDO概述
16.1.1
PDO简介
返回目录
16.1.2
PDO的安装
16.1 PDO概述
16.1.1 PDO简介
随着业务需求的日益多样化,PHP程序使用多种数据库的情况也越来越常见。如果只是通过单一的接口针对单一的数据库编写程序,例如,用MySQL函数处理MySQL数据库,或者使用其他函数处理其他类型的数据库,这会提高编程的复杂度和工作量,同时也会增加程序移植和维护的难度。
为了解决这个问题,数据库抽象层被引入到PHP开发中。通过数据库抽象层,PHP程序把数据处理和数据库连接分开,程序连接的数据库的类型不影响PHP业务逻辑程序。
PDO是PHP数据对象(PHP Data Object)的缩写,它是实现数据库抽象层的数据库抽象类,其作用是统一各种数据库的访问接口。
16.1 PDO概述
16.1.1 PDO简介
PDO类是PHP 5中最为突出的功能之一。PHP 5版本以前,PHP都只能通过针对MySQL的类库、PgSQL类库以及MSSQL的类库等实现针对性的数据库连接。PHP5版本以后,基于PDO抽象层,PHP程序可以采用若干不同的数据库支持方案。
PDO扩展是模块化的,使能够在程序运行时为自己的数据库后端加载驱动程序,而不必重新编译或安装整个PHP程序。例如,PDO_MySQL扩展会替代PDO扩展实现MySQL数据库API。
16.1 PDO概述
16.1.2 PDO的安装
PDO类库是PHP自带的类库,因此要使用PDO类库,只需要在php.ini中把关于PDO类的语句前面的注释符号去掉即可。
首先启用extension=php_pdo.dll类库,这个类库是PDO类库本身。然后选择不同的数据库驱动类库选项。extension=php_pdo_mysql.dll适用于MySQL数据库的连接。如果使用MS SQL,可以启用extension=php_pdo_mssql.dll类库。如果使用Oracle数据库,可以启用extension=php_pdo_oci.dll类库。除了这些,还有支持pgsql和sqlite等的类库。
本机环境下启用的类库为extension=php_pdo.dll和extension=php_pdo_mysql.dll。
7
16.2 使用PDO连接数据库
16.2.1
数据准备
返回目录
16.2.2
PDO构造函数
16.2.3
DSN详解
16.2 使用PDO连接数据库
首先使用命令提示符窗口创建一个名称为qianfeng_edu的数据库,SQL语句如下所示。
接着将当前使用的数据库切换为section16,SQL语句如下所示。
16.2.1 数据准备
然后创建一张名称为student的数据表,SQL语句如下所示。
16.2 使用PDO连接数据库
向student表中插入数据,SQL语句如下所示。
16.2.1 数据准备
16.2 使用PDO连接数据库
使用PDO在与不同数据库管理系统之间交互时,PDO对象中的成员方法是统一各种数据库的访问接口,所以在使用PDO与数据库交互之前,首先要创建一个PDO对象。在通过构造方法创建对象的同时,需要建立一个与数据库服务器的连接,并选择一个数据库。PDO的构造函数的语法如下:
16.2.2 PDO构造函数
其中,参数$dsn表示数据源名称,包括主机名端口号和数据库名称;$username表示连接数据库的用户名;$password表示连接数据库的密码;$driver_options表示连接数据库的其他选项。
16.2 使用PDO连接数据库
DSN是Data Source Name(数据源名称)的缩写,DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:MySQL、SQLite或PgSQL),冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。
实际中有一些数据库服务器可能与