主要内容 PDo的基本概念 PDo的安装方法 PDO操作 MySQL数据库的方法
主要内容 PDO的基本概念 PDO的安装方法 PDO操作MySQL数据库的方法
PHP的数据库抽象类的出现是PHP发展过程中的重要一步。PDO 扩展为PHP访问数据库定义了一个轻量级、一致性的接口,提供 了—个数据访问抽象层。这样无论使用什么数据库,都可以通过 致的函数执行查询和获取数据。PDO随PHP51发行,在 PHP50的PECL扩展中也可以使用,无法运行于之前的PHP版本
PHP的数据库抽象类的出现是PHP发展过程中的重要一步。PDO 扩展为PHP访问数据库定义了一个轻量级、一致性的接口,提供 了一个数据访问抽象层。这样无论使用什么数据库,都可以通过 一致的函数执行查询和获取数据。PDO随PHP5.1发行,在 PHP5.0的PECL扩展中也可以使用,无法运行于之前的PHP版本
PDO概述 随着PHP应用的快速增长河通过PHP开发跨平台的应用,使用不同的数 据库是十分常见的。PHP需要支持从 MySQL、 MS SQL到 Oracle数据库 的多种数据库。 如果只是通过单一的数据库编写程序,比如用 MySQLI函数处理 MySQL数 据库,用其他函数处理 Oracle数据库,会在很大程度上增添PHP程序在 数据库方面的灵活性并提高程序的复杂性和工作量。 PHP mvs oracle mssq SOLite 其他DB 扩展函数 扩展函数 扩展函数 扩展函数 扩展函数 MySQL Oracl SOL SQLite Other DB erve
PDO概述 随着PHP应用的快速增长河通过PHP开发跨平台的应用,使用不同的数 据库是十分常见的。PHP需要支持从MySQL、MS SQL到Oracle数据库 的多种数据库。 如果只是通过单一的数据库编写程序,比如用MySQL函数处理MySQL数 据库,用其他函数处理Oracle数据库,会在很大程度上增添PHP程序在 数据库方面的灵活性并提高程序的复杂性和工作量
PDO概述 访问每种数据库时都需要学习新的函数库,这很麻烦,而且使得PHP应 用程序在异构数据库间的移植难以实现。为了解决这样的难题,就需要 数据库抽象层”。它能解决应用程序逻辑与数据库通信逻辑之间 的耦合,通过这个通用接口传递所有与数据库相关的命令。 PDo就是这样一个“数据库抽象层”,它的作用是统-各种数据库的访 问接口,能够轻松地在不同数据库之间进行切换,使得PHP程序在数据 库间的移植容易实现。 PHP 数据库抽象层(PDO) MySQL DBLIB SOLITE OTHER 驱动 驱动 驱动 驱动 驱 MySQL Oracle SQL SQLite Other DB Server
PDO概述 访问每种数据库时都需要学习新的函数库,这很麻烦,而且使得PHP应 用程序在异构数据库间的移植难以实现。为了解决这样的难题,就需要 一个“数据库抽象层”。它能解决应用程序逻辑与数据库通信逻辑之间 的耦合,通过这个通用接口传递所有与数据库相关的命令。 PDO就是这样一个“数据库抽象层”,它的作用是统一各种数据库的访 问接口,能够轻松地在不同数据库之间进行切换,使得PHP程序在数据 库间的移植容易实现
PDO概述 PDO对各种数据库的支持及对应使用的驱动名称。 驱动名 对应访问的数据库 PDO CUBRID Cubrid PDO DBLIB FreeTDS/ Microsoft SQL Server 2005/ Sybase PDO FIREBIRD Firebird/ Interbase 6 PDO IBM IBM DB2 PDO INFORMIX IBM Informix Dynamic Server PDO MYSQL MySQL 3. X/4.x/5.x PDO OCI Oracle(OCI-Oracle Call Interface) PDO ODBC ODBC V3(IBM DB2, unixODBC and win32 ODBC) PDO PGSQL PostgreSQL PDO SQLITE SQLite3及 SQLite2 PDO SQLSRV Microsoft SQL Server208及以上/SQLA PDO 4D 4D
PDO概述 PDO对各种数据库的支持及对应使用的驱动名称
PDO概述 PDo通过数据库抽象层实现了以下特性 灵活性:可以在PHP运行期间直接加载新的数据库,而不需要在新的数 据库使用时重新设置和编译。 面向对象性:这个特性完全配合了PHP5,通过对象来控制数据库的使用 速度极快:由于PDO是使用C语言编写并且编译进PHP的,所以比那些用 PHP编写的抽象类要快的多
PDO概述 PDO通过数据库抽象层实现了以下特性: 灵活性:可以在PHP运行期间直接加载新的数据库,而不需要在新的数 据库使用时重新设置和编译。 面向对象性:这个特性完全配合了PHP5,通过对象来控制数据库的使用。 速度极快:由于PDO是使用C语言编写并且编译进PHP的,所以比那些用 PHP编写的抽象类要快的多
PDO安装方法 由于PDo类库是PHP自带的类库,因此要使用PDO类库,只需要在 php init中把关于PDO类库的语句前面的注释符号去 掉即可。 首先启用 extension=php_pdo.d类库,这个类库是PDo类库本身。然后不同的数据库驱动类库选项。 [PHP_PDO_MYSQL] extension= php_pdo_mysq.dl/激活 MySQL的PDO驱动 [PHP_ PDO_MSSQL] extension=php_ pdo_mssql. dll/)活 MS SQL的PDO驱动 [PHP PDO Oracle extension=php_pdo_ocidl 激活 Oracle的PDO驱动 [PHP PDO ODBC] extension=php_ pdo_odbc. dll/激活ODBC的PDO驱动 [PHP_PGSQ凵 extension=php_pgsql. dll 激活 PostgreSQL的PDO驱动
PDO安装方法 由于PDO类库是PHP自带的类库,因此要使用PDO类库,只需要在php.ini中把关于PDO类库的语句前面的注释符号去 掉即可。 首先启用extension=php_pdo.dll类库,这个类库是PDO类库本身。然后不同的数据库驱动类库选项。 [PHP_PDO_MYSQL] extension=php_pdo_mysql.dll //激活MySQL的PDO驱动 [PHP_PDO_MSSQL ] extension=php_pdo_mssql.dll //激活MS SQL的PDO驱动 [PHP_PDO_Oracle] extension=php_pdo_oci.dll //激活Oracle的PDO驱动 [PHP_PDO_ODBC] extension=php_pdo_odbc.dll //激活ODBC的PDO驱动 [PHP_PGSQL] extension=php_pgsql.dll //激活PostgreSQL的PDO驱动
PDO操作 MySQL数据库 首先搭建好环境,使用的类库为 extension=php_pdo.d和 extension_pdo_mysql. dll 连接 MySQL数据库主要通过PDO类库内部的构造函数来完成的。PDO构 造函数的结构为 PDO:constuct(DSN, username, password, [driver_options]) 其中DSN是一个“数据源名称”, username是一个接入数据源的用户名, password是用户密码, driver_options是特定连接要求的其他参数。 DSN是一个字符串,是由“数据库服务器类型”“数据库服务器地址 和“数据库名称”组成的,它们组合的格式为 数据库服务器类型:host=数据库服务器地址; dbname=数据库名称
PDO操作MySQL数据库 首先搭建好环境,使用的类库为extension=php_pdo.dll和 extension_pdo_mysql.dll 连接MySQL数据库主要通过PDO类库内部的构造函数来完成的。PDO构 造函数的结构为: PDO::_constuct(DSN,username,password,[driver_options]) 其中DSN是一个“数据源名称”,username是一个接入数据源的用户名, password是用户密码,driver_options是特定连接要求的其他参数。 DSN是一个字符串,是由“数据库服务器类型”“数据库服务器地址” 和“数据库名称”组成的,它们组合的格式为: ‘数据库服务器类型:host=数据库服务器地址;dbname=数据库名称’
PDO操作 MySQL数据库 driver_options是一个数组,它有很多选项 PDo: ATTR AUTOCOMMIT:此选项定义PDO在执行时是否注释每条请求 pDo∷ATTR_CASE:通过此选项,可以控制数据库中取得的数据的字母大小写。具体来 说就是,通过PDO: CASE UPPER使所有读取的数据字母变为大写,可以通过 PDO: CASE LOWER使所有读取的数据字母变为小写,可以通过PDO: CASE NATURL 使用特定的在数据库中发现的字段。 PDO: ATTR EMULATE PREPARES:使用此选项可以利用 MySQL的请求缓存功能。 pDo: ATTR ERRMODE:使用此选项定义PDO的错误报告模型。具体的3中模式分别为 pDo∴: ERRMODE EXCEPTION例外模式、PDO: ERRMODE SILENT沉默模式和 PDo∴: ERRMODE WARNING警报模式 PDo∷: ATTR ORACLE NULLS:使用此选项,在使用 Oracle数据库时,会把空字符串转 换为NUL值。一般情况下,此选项默认为关闭。 pDo∷ATTR_ PERSISITENτ:使用此选项来确定此数据库的连接是否是可持续,但是其默 认值为 false,不启用
PDO操作MySQL数据库 driver_options是一个数组,它有很多选项: PDO::ATTR_AUTOCOMMIT:此选项定义PDO在执行时是否注释每条请求。 PDO::ATTR_CASE:通过此选项,可以控制数据库中取得的数据的字母大小写。具体来 说就是,通过PDO::CASE_UPPER使所有读取的数据字母变为大写,可以通过 PDO::CASE_LOWER使所有读取的数据字母变为小写,可以通过PDO::CASE_NATURL 使用特定的在数据库中发现的字段。 PDO::ATTR_EMULATE_PREPARES:使用此选项可以利用MySQL的请求缓存功能。 PDO:ATTR_ERRMODE:使用此选项定义PDO的错误报告模型。具体的3中模式分别为 PDO::ERRMODE_EXCEPTION例外模式、PDO::ERRMODE_SILENT沉默模式和 PDO::ERRMODE_WARNING警报模式。 PDO::ATTR_ORACLE_NULLS:使用此选项,在使用Oracle数据库时,会把空字符串转 换为NULL值。一般情况下,此选项默认为关闭。 PDO::ATTR_PERSISITENT:使用此选项来确定此数据库的连接是否是可持续,但是其默 认值为false,不启用
PDO操作 MySQL数据库 driver_options是一个数组,它有很多选项 PDO:ATTR PREFETCH此选项确定是否要使用数据库 prefetch功能。此功能是在 用户取得一条记录操作之前就取得多条记录,以准备给下一次请求数据操作提供 数据,并且减少了执行数据库请求的次数,提高了效率 PDO: ATTR TIMEOUT:此选项设置超时时间为多少秒,但是 MySQL不支持此功能。 PDo: DEFAULT FETCH_MoDE:此选项可以设定默认的 fetch模型,是以联合数据 的形式取得数据,或者以数字索引数组的形式取得数据,或者以对象的形式取得 数据
PDO操作MySQL数据库 driver_options是一个数组,它有很多选项: PDO::ATTR_PREFETCH:此选项确定是否要使用数据库prefetch功能。此功能是在 用户取得一条记录操作之前就取得多条记录,以准备给下一次请求数据操作提供 数据,并且减少了执行数据库请求的次数,提高了效率。 PDO::ATTR_TIMEOUT:此选项设置超时时间为多少秒,但是MySQL不支持此功能。 PDO::DEFAULT_FETCH_MODE:此选项可以设定默认的fetch模型,是以联合数据 的形式取得数据,或者以数字索引数组的形式取得数据,或者以对象的形式取得 数据