简介
PDO(PHP Data Object),数据库访问抽象层,统一各种数据库的访问接口。
- PHP 对数据库的支持常常模仿处理 MySQL 的函数库,但并不是所有的数据库处理函数库都是一样的,也不是所有的数据库都提供相同的特性。
- 不同的 PHP 数据库扩展都有他们各自的不同之处,所以从一种数据库迁移到另一种数据库时会有一些困难。
- PDO 扩展类库为 PHP 访问数据库定义了一个轻量级的、一致性的接口,提供了一个数据访问抽象层,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。
- 使用 PDO 可以很方便地进行跨数据库程序的开发,以及不同数据库间的移植。
- 对任何数据库的操作,并不是使用 PDO 扩展本身执行的,而是针对不同数据库服务器使用特定的 PDO 驱动程序访问
特性
- 编码一致性:提供可用于各种数据库的单一接口
- 灵活性
- 高性能
- 面向对象
配置与启用
phpstudy中,打开php.ini配置文件,将 ;extension=php_pdo_mysql.dll开头的分号去掉,再重启 phpstudy后启用
extension=php_pdo_mysql.dll //MySQL
extension=php_pdo_mssql.dll //SQL Server
extension=php_pdo_odbc.dll //ODBC
extension=php_pdo_oci.dll //Oracle 驱动程序
连接数据库
使用 PDO 在与不同数据库管理系统之间交互时,PDO 对象中的成员方法是统一各种数据库的访问接口,所以在使用 PDO 与数据库交互之前,首先要创建一个 PDO 对象。
- 通过参数形式连接数据库
try{
$dsn = 'mysql:host=localhost;dbname=?';
$username = '?';
$passwd = '?';
$pdo = new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){
echo $e->getMessage();
}
- 通过 URI 形式连接数据库
dsn.txt:mysql:localhost=mysql;dbname=?
try{
$dsn = 'uri:file://D:\phpStudy\WWW\dsn.txt';
$username = '?';
$passwd = '?';
$pdo = new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){
echo $e->getMessage();
}
- 通过配置文件形式连接数据库
在php.ini配置文件中写入: pdo.dsn.shopimooc=“mysql:host=localhost;dbname=?”
然后重启
try{
$dsn = 'shopimooc';
$username = '?';
$passwd = '?';
$pdo = new PDO($dsn, $username, $passwd);
var_dump($pdo);
}catch (PDOException $e){
echo $e->getMessage();
}