您的位置:首页 > 编程语言 > PHP开发

PDO(PHP数据对象)的安装及连接数据库

2019-01-03 21:54 337 查看

PDO是 PHP Date Object (PHP数据对象)的简称。它支持很多数据库,包括:Firebird、FreeTDS、Interbase、MySQL、SQL Server等等。有了PDO,就不必再使用mysql_* 函数、oci_* 函数或者mssql_*函数,也不必再为它们封装数据库操作类,只需要使用PDO接口中的方法就可以对数据库进行操作。在选择不同的数据库时,只需要修改PDO的DSN(数据源名称)。
在PHP6 中将默认使用PDO连接数据库,所有非PDO扩展将会在PHP6中被移除。该扩展提供PHP内置类PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。
一、PDO的特点
1、 PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与MySQL 和MS SQL函数库相比,PDO让跨数据库的使用更具有亲和力。
2、 PDO将通过一种轻型、清晰、方便的函数,统一各种不同RDBMS库的共有特性,实现PHP脚本最大限度的抽象性和兼容性。
3、PDO吸取现有数据库扩展成功和失败的经验教训,利用PHP5的最新特性,可以轻松地与各种数据库进行交互。
4、PDO扩展是模块化的,能够在运行时为数据库后端加载驱动程序,而不必重新编译或重新安装整个PHP程序。
二、安装PDO
PDO是与PHP5.1一起发行的,默认包含在PHP5.1中。由于PDO需要PHP5核心面向对象特性的支持,因此其无法在PHP5之前的版本中使用。
默认情况下,PDO在PHP5.2中为开启状态,但是要启用对某个数据库驱动程序的支持,需要进行相应的配置操作。
在Linux环境下,要使用MySQL数据库,可以在configure 命令中添加如下选项:

--with-pdo-mysql=/path/to/mysql/installation

在Windows 环境下,PDO在php.ini文件中进行配置,如下图:

要启用PDO,首先必须加载“extension=php_pdo.dll”,如果想让其支持某个具体的数据库,那么,还需要加载对应的数据库选项。例如,要支持MySQL数据库,则需要加载“extension=php_pdo_mysql.dll”。
三、PDO连接数据库——PDO构造函数
在PDO中,要建立与数据库的连接需要实例化PDO的构造函数,语法如下:

__construct(string $dsn [,string $username [,string $password [,array $driver_option]]]);
  • dsn:数据源名,包括主机名端口号和数据库名称。
  • username:连接数据库的用户名。
  • password:连接数据库的密码。
  • driver_option:连接数据库的其他选项。

通过PDO连接MySQL数据库的代码如下:

<?php
header("Content-Type:text/html;charset=utf-8");//设置页面的编码格式
$dbms = 'mysql';  //数据库类型
$db_name = 'db_study';//使用的数据库名称
$usname = 'root';//使用的数据库用户名
$pwd = '123456';//使用的数据库密码
$host = '127.0.0.1';//使用的主机名称
$dsn = "$dbms:host=$host;dbname=$db_name";
try{//捕获异常
$pdo = new PDO($dsn,$usname,$pwd);//实例化对象
echo "PDO连接MySQL数据库成功!";
}catch(Exception $e){
echo $e->getMessage()."</br>";
}
?>

四、PDO连接数据库——DSN详解

  • DSN 是 Data Source Name(数据源名称)的缩写。DSN提供连接数据库需要的信息。PDO的DSN包括3部分:PDO驱动名称(如:mysql、sqlite或者pgsql)、冒号和驱动特定的语法。每种数据库都有其特定的驱动语法。
  • 在使用不同的数据库时,必须明确数据库服务器是完全独立于PHP的实体。虽然数据库服务器和Web服务器是在同一台计算机上,但是实际的情况可能不是如此,数据库服务器和Web服务器不是在同一台计算机上,此时要通过PDO连接数据库,就需要修改DSN中的主机名称。
  • 由于数据库服务器只在特定的端口上监听连接请求,每种数据库服务器具有一个默认的端口号(MySQL 是 3306),但是数据库管理员可以对端口号进行修改,所以PHP有可能找不到数据库的端口,此时就可以在DSN中包含端口号。
  • 由于一个数据库服务器中可能拥有多个数据库,所以在通过DSN连接数据库时,通常都包括数据库名称,这样可以确保连接的是想要的数据库,而不是其他人的数据库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: