首页 > 其他 > 详细

事务处理

时间:2019-08-14 20:22:12      阅读:67      评论:0      收藏:0      [点我收藏+]

多条SQL语句当成一个整体来进行执行,如果其中由一条SQL语句没有执行成功,

那么所有的SQL语句都要执行失败,将状态回滚到最初状态。

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

PDO::beginTransaction  启动一个事务 

PDO::commit  提交一个事务

PDO::rollBack — 回滚一个事务

<?php

$dsn = ‘mysql:host = localhost;dbname=user;charset=utf8‘;
try{
$pdo = new PDO($dsn,‘root‘,‘123456‘);
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e)
{
die(‘数据库连接失败‘.$e->getMessage());
}

try{
$pdo->beginTransaction();
$sql = ‘update user set money=money-500 where id=1‘;
$ret = $pdo->exec($sql);
if($ret >0){
echo "建驴转款成功 <br />";
}else{
throw new PDOException(‘建驴转款失败<br />‘);
}

$sql = ‘update user set money=money+500 where id=2‘;
$ret = $pdo->exec($sql);
if($ret >0){
echo "建猪转入成功<br />";
}else{
throw new PDOException(‘建猪转入失败<br />‘);
}
$pdo->commit();
echo "交易成功!<br />";
}catch(PDOException $e){
$pdo->rollback();
echo $e->getMessage();
}

事务处理

原文:https://www.cnblogs.com/rjbc/p/11354396.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!