天天看点

pdo数据抽象层

定义:

    PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO随PHP5.1发行,在PHP5.0的PECL扩展中也可以使用。

如何引用PDO:

1、打开php的配置文件然后搜索pdo找到也就是以下php_pdo.dll 行后启用它们,也就是把前面的注释去掉。

pdo数据抽象层

2、需要明白这些dll的文件存在的目录是lamp\wamp\bin\php\php5.2.6\ext下

3、为何要使用pdo即所谓的优点:

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

(2)Mysqli  只支持mysql数据库,PDO支持大部分数据库

 (3)相对其他的数据库而言pdo的执行更高效。

mysqli------是mysql数据库的加强:

(预处理机制)

(错误处理机制)

(采用了面向对象的编程模式)

3、需要知道一些简单的用法

PDO->beginTransaction() — 标明回滚起始点

PDO->commit() — 标明回滚结束点,并执行SQL

PDO->__construct() — 建立一个PDO链接数据库的实例

PDO->errorCode() — 获取错误码

PDO->errorInfo() — 获取错误的信息

PDO->exec() — 处理一条SQL语句,并返回所影响的条目数

PDO->getAttribute() — 获取一个“数据库连接对象”的属性

PDO->getAvailableDrivers() — 获取有效的PDO驱动器名称

PDO->lastInsertId() — 获取写入的最后一条数据的主键值

PDO->prepare() — 生成一个“查询对象”

PDO->query() — 处理一条SQL语句,并返回一个“PDOStatement”

PDO->quote() — 为某个SQL中的字符串添加引号

PDO->rollBack() — 执行回滚

PDO->setAttribute() — 为一个“数据库连接对象”设定属性

4、数据库的连接

         PDO中的数据库连接并且返回查询的数据

<?php

$dsn = ‘mysql:host=localhost;dbname=db_name′;

$user = ‘root';

$password = ‘′;

$pdo = new PDO($db_name,$root,$pass);

$sql = 'select * from bank';

$row = $pdo->query($sql);

//fetch 返回第一条数据

//$rows=$row ->fetch(PDO::FETCH_ASSOC);

//var_dump($rows);

//fetchAll 返回关联数据的

$rows=$row ->fetchAll(PDO::FETCH_ASSOC);

var_dump($rows);

?>

5、 PDO中的事务

PDO->beginTransaction(),PDO->commit(),PDO->rollBack()这三个方法是在支持回滚功能时一起使用的。PDO->beginTransaction()方法标明起始点,PDO->commit()方法标明回滚结束点,并执行SQL,PDO->rollBack()执行回滚。

<?php

try {

$dbh = new PDO('mysql:host=localhost;dbname=test', ‘root', ”);

$dbh->query('set names utf8;');

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();

$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('mick', 22);”);

$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('lily', 29);”);

$dbh->exec(”INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('susan', 21);”);

$dbh->commit();

} catch (Exception $e) {

$dbh->rollBack();

echo “Failed: ” . $e->getMessage();

}

?>