php 事务的示例

1 篇文章 0 订阅

tp5使用事务:

/*开启事务*/
Db::startTrans();
try {
	//业务逻辑
    $is = (new Model())->save(['title' => '楠楠'],['id' => 1]);
    if (!$is){
    	throw new PDOException('修改失败');
    }   
    Db::commit();//执行成功,提交事务
    return $is;
}catch(\Exception $e){
    Db::rollback();// 执行失败,事务回滚  
    exit($e->getMessage());// 输出错误信息
}

原生代码:

<?php
	//创建连接
	$res = mysqli_connect('localhost','username','password');	
	//判断是否链接成功				
	if(!$res) exit('数据库连接失败');
	//设置字符集											
	mysqli_set_charset($res , 'utf8');											
	//选择数据库
	mysqli_select_db($res,'myDatabase');										
	//准备sql语句
	$sql1 = "正确的插入语句";													
	$sql2 = "错误的插入语句";		
	//发送sql语句											
	$result1 = mysqli_query($res , $sql1);										
	$result2 = mysqli_query($res , $sql2);	
	if($result1 && $result2) {
		//提交事务
		mysql_query(“COMMIT”);													
		echo "提交成功";
	} else {
		//执行失败,事务回滚
		mysql_query("ROLLBACK");
		echo '数据回滚';
	}
	//事务结束
	mysql_query("END");															

pdo代码:

try {
	 //实例化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);
	 //开启事务
	 $pdo->beginTransaction();
	 //执行sql语句
	 $pdo->exec("insert into site(name,pwd,sn) values('nannan','123456','123456789')");
     $pdo->exec("insert into site_info(name,pwd,sn) values('nannan1',123456','012345678')");
     //提交事务
     $pdo->commit();
     //PDO   PDOStatement  PDOException
} catch(PDOException $e) {
	 //回滚事务
     $pdo->rollBack();
	 echo "数据回滚";    
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值