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

PHP学习笔记【四】之《数据库抽象层PDO---PDO事务处理》

2017-02-25 22:13 399 查看
一、PDO错误处理模式

<?php
/*
PDO::ERRMODE_SLIENT:默认模式,静默模式
PDO::ERRMODE_WARNING:警告模式
PDO::ERRMODE_EXCEPTION:异常模式
*/
try{
$pdo=new PDO('mysql:host=localhost;dbname=my_db','root','');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql='SELECT * FROM noneTable';
$pdo->query($sql);
echo $pdo->errorCode();
echo '<br/>';
print_r($pdo->errorInfo());
}catch(PDOException $e){
echo $e->getMessage();
}
?>


二、PDO事务处理



<?php
header('content-type:text/html;charset=utf-8');
try{
$dsn='mysql:host=localhost;dbname=my_db';
$username='root';
$passwd='';
$options=array(PDO::ATTR_AUTOCOMMIT,0);
$pdo=new PDO($dsn, $username, $passwd, $options);
var_dump($pdo->inTransaction());
//开启事务
$pdo->beginTransaction();
var_dump($pdo->inTransaction());
//$sql='UPDATE userAccount SET money=money-2000 WHERE username="zzc"';
$sql='UPDATE userAccount SET money=money-2000 WHERE username="zzccc"';

$res1=$pdo->exec($sql);
if($res1==0){
throw new PDOException('zzc 转账失败');
}
$res2=$pdo->exec('UPDATE userAccount SET money=money+2000 WHERE username="jason"');
if($res2==0){
throw new PDOException('jason 接收失败');
}
//提交事务
$pdo->commit();
}catch(PDOException $e){
//回滚事务
$pdo->rollBack();
echo $e->getMessage();
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: