事务

2007-01-13 回答
 

一. 什么是事务

简单来说就是当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行

 二.   如何使用事务

  1.mysql_connect连接数据库

$LinkID =mysql_connect('localhost','root','root');//连接数据库
mysql_select_db('test',$LinkID);//将要操作的数据库
mysql_query("set names utf8");//设置编码格式
mysql_query("SET AUTOCOMMIT=0"); //设置mysql不自动提交,需自行用commit语句提交
$sql = "XXXXXXXXX";//第一条sql语句
$sql2 = "XXXXXXXXX";//第二条sql语句
$res = mysql_query($sql);//执行第一条sql语句
$res1 = mysql_query($sql2);//执行第二条sql语句
if($res && $res1){
    mysql_query("COMMIT");//成功  提交事务
}else{
    mysql_query("ROLLBACK");//错误  至少有一条sql语句执行错误,事务回滚
}
mysql_query("END");//事务结束

2.pdo开启事务

1、关闭 PDO 的自动提交;
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, false);  

2、开启事务需要的方法;
$pdo->beginTransaction(); // 开启一个事务  
$pdo->commit(); // 提交事务  
$pdo->rollback(); // 回滚事务  

3、一般事务处理是运行在 try...catch...语句中,当事务失败时执行 catch 代码段。
 
    try {  
        $pdo->beginTransaction(); // 开启一个事务  
        $row = null;  
        $row = $pdo->exec("xxx"); // 执行第一个 SQL  
        if (!$row)   
            throw new PDOException('提示信息或执行动作'); // 如出现异常提示信息或执行动作  
        $row = $pdo->exec("xxx"); // 执行第二个 SQL  
        if (!$row)   
            throw new PDOException('提示信息或执行动作');  
        $pdo->commit();  
    } catch (PDOException $e) {  
        $pdo->rollback(); // 执行失败,事务回滚  
        exit($e->getMessage());  
    }  
 在事务中的 SQL 语句,如果出现错误,那么所有的 SQL 都不执行。当所有 SQL 有无误的时候,才提交执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值