PHP如何使用事务

有时候程序处理的时候需要两项或者多项数据处理一个失败其他的都不再执行,之间的关系是一错则全错,全都执行成功才算成功;这里就需要用到事务处理,错误回滚;

废话不多说  上代码:

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




下面的写法是php的PDO的实现方式

try{
    //1.实例化PDO对象
    $pdo = new PDO("mysql:host=localhost;dbname=test","root","root",array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    //1.开启事务
    $pdo->beginTransaction();
    //2.执行sql语句
    $pdo->exec("insert into t1(username,password,rtime,rip) values('shiwu2','shiwu2','456456456','456456456')");
    $pdo->exec("insert into t2(username,password,rtime,rip) values('shiwu2',shiwu2','456456456','456456456')");
    //提交事务
    $pdo->commit();
    //PDO   PDOStatement  PDOException
}catch(PDOException $e){
    echo "aaaaaaaaaa";
    //回滚事务
    $pdo->rollBack();
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值