当前位置:七道奇文章资讯网站建设网站编程
日期:2010-10-20 13:20:00  来源:本站整理

PHP中的PDO函数库详解[网站编程]

赞助商链接



  本文“PHP中的PDO函数库详解[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

PDO是一个“数据库拜候抽象层”,作用是统一各种数据库的拜候接口,与mysql和mysqli的函数库相比,PDO让跨数据库的利用更具有亲和力;与ADODB和MDB2相比,PDO更高效.目前而言,实现“数据库抽象层”任重而道远,利用PDO这样的“数据库拜候抽象层”是一个不错的挑选.


PDO中包含三个预定义的类

PDO中包含三个预定义的类,它们辨别是 PDO、PDOStatement 和 PDOException.

1、PDO

PDO->beginTransaction() — 标明回滚起始点
PDO->commit() — 标明回滚完毕点,并履行SQL
PDO->rollBack() — 履行回滚
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->setAttribute() — 为一个“数据库衔接对象”设定属性

详解1) PDO中的数据库衔接
$dsn = ‘mysql:dbname=ent;host=127.0.0.1′;
$user = ‘root’;
$password = ‘123456′;
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_PERSISTENT => true));
$dbh->query(’set names utf8;’);
foreach ($dbh->query(’SELECT * from tpm_juese’) as $row) {
print_r($row);
}
} catch (PDOException $e) {
echo ‘Connection failed: ‘ . $e->getMessage();
}

很多Web利用会因为利用了向数据库的长期衔接而得到优化.长期衔接不会在脚本完毕时关闭,
相反它会被缓存起来并在另一个脚本通过一样的标识恳求一个衔接时得以重新操纵.
长期衔接的缓存可以使你避免在脚本每次需求与数据库对话时都要布置一个新的衔接的资源损耗,让你的Web利用越发快速.
上面实例中的array(PDO::ATTR_PERSISTENT => true)就是把衔接范例设置为长期衔接.

详解2) 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();
}
?>
目前你已经通过PDO成立了衔接,在布置查询之前你必须搞懂得PDO是怎样管理事件的.假如你从前从未碰到过事件处理,(目前简单介绍一下:)它们供应了4个主要的特点:原子性,一致性,独立性和长期性(Atomicity, Consistency, Isolation and Durability,ACID)通俗一点讲,一个事件中全部的工作在提交时,即便它是分阶段履行的,也要保证安全地利用于数据库,不被其他的衔接干扰.事件工作也可以在恳求发生错误时轻松地自动撤消.

事件的典型应用就是通过把批量的改变“保存起来”然后当即履行.这样就会有完好地提高更新效率的好处.换句话说,事件可以使你的脚本更快速同时大概更结实(要实现这个长处你仍旧需求精确的利用它们).

不幸运的是,并非每个数据库都支持事件,因此PDO需求在成立衔接时运行在被认为是“自动提交”的情势下.自动提交情势意味着你履行的每个查询都有它自己隐含的事件处理,无论数据库支持事件还是因数据库不支持而不存在事件.假如你需求一个事件,你必须利用 PDO->beginTransaction() 办法成立一个.假如底层驱动不支持事件处理,一个PDOException就会被抛出(与你的非常处理设置无关,因为这老是一个严重的错误状况).在一个事物中,你可以利用 PDO->commit() 或 PDO->rollBack() 完毕它,这取决于事件中代码运行能否成功.

当脚本完毕时或一个衔接要关闭时,假如你还有一个未处理完的事件,PDO将会自动将其回滚.这是关于脚本不测终止的情形来说是一个安全的筹划——假如你没有明确地提交事件,它将会假定发生了一些错误,为了你数据的安全,所以就履行回滚了.


  以上是“PHP中的PDO函数库详解[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • PHP中文件包含语句的辨别
  • 怎样用PHP中的MySQL操作函数
  • PHP中操作MySQL的一些要注意的问题
  • PHP中操作MySQL的需注意的问题
  • php中返回查询数据集四种办法
  • php中超级简单文件上传代码
  • php中返回ascii值函数odr
  • php中常用hash加密函数
  • php中正则获得url函数preg_match
  • PHP中文URL编解码具体阐明
  • php中的反斜杠/
  • PHP中的PDO函数库详解
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .