通过PHP操作MYSQL数据库之PDO数据库抽象层


为什么要讲PDO呢,原因有3个:

1、市面上最用最多的,大部分企业使用PDO;

2、MYSQLI只支持mysql数据库,PDO支持大部分数据库;

3、以后做的项目都是使用PDO作为数据库抽象层来实现的。

mysqli是mysql数据库的加强,主要使用了预处理机制、错误处理机制、采用面向对象编程模式。

一、PHP如何操作数据库?

与具体数据库的扩展:PHP想操作那个数据库,需要开启这个数据库的扩展,提供操作这个数据库的函数。

二、什么是PDO?

PDO是一个mysql官方封装的,基于面向对象编程思想的,使用C语言开发的数据库抽象层。

三、PDO数据库抽象层的概念:

它是封装的一个类,就是一个控制数据库的新的操作方法,将具体的操作数据库的代码封装到数据库抽象层,如果需要操作某个数据库,只需在PHP代码里告诉数据库抽象层,你想使用哪一个数据库就可以了。

下面通过代码引出PDO:

//写一个函数,根据传递的参数来操作不同的数据库
function mysql_db($type){
if($type==’mysql’){
mysql_connect();
mysql_select_db();
}elseif ($type==’mssql’){
mssql_connect();
mssql_query();
}elseif ($type==’oracle’){
// 具体操作某个数据库的函数
}
}
mysql_db(‘mysql’);
function mysql_q($type,$sql){
if($type==’mysql’){
mysql_query($sql);
}
}
如何使用PDO?

和当前使用mysql非常像,要想使用mysql,需要开启mysql扩展,要想使用PDO,也需要开启PDO扩展。

PDO是与PHP5.1一起发行的,默认包含在PHP5.1的安装文件中,由于PDO需要PHP5面向对象特性的支持,因此其无法在PHP5.0之前的版本中使用。

默认情况下,PDO在PHP5.2中卫开启状态,但是要启用对某个数据库驱动程序的支持,人需要进行相应的配置操作,在不同的操作系统环境下配置的方法如下:

(1)在LInux环境下,要使用mysql数据库,可以在configure命令中添加如下选项:

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

(2)在windows环境下,启用PDO需要在php.ini文件中进行配置,要启用PDO,首相必须加载“extension-php_pdo.dll”,如果要想支持某个具体的数据库,那么还需要加载对应的数据库选项,例如要支持mysql数据库,则还需要加载“extension=php_pdo_mysql.dll”选项。

Extension = php_pdo.dll

Extension = php_pdo_sqlite.dll

Extension = php_pdo_mysql.dll

开启这个扩展驱动,就可以使用这个扩展给我们提供类了。

如果了解面向对象的基本概念以及用法,我们知道如果要使用某个类里边的方法,需要实例化一个对象,利用PDO操作数据库也是一样的,示例代码如下:

$dsc = “mysql:host=localhost;dbname=list”;
$user = “list”;
$pwd = “list”;
$pdo = new PDO($dsc,$user,$pwd);
$query = “select * from orders”;
$result = $pdo->query($query);
$res = $result->fetchAll(PDO::FETCH_ASSOC);
echo ‘<pre>’;
print_r($res[0]);
echo $res[0][ordertime].'<br/>’;
for($i=0; $i<count($res); $i++){
echo $res[$i][ordertime].'<br/>’;
}
这个流程跟在命令行里边操作数据库是类似的,首先打开数据库,确定host地址和需要操作的数据库,然后选择数据库名和密码。最后实例化的对象参数就是这个数据库的相关信息。