• 技术文章 >后端开发 >PHP问题

    php什么时候用事务

    (*-*)浩(*-*)浩2019-10-26 11:39:08原创1116

    在某些程序在执行的时候需要进行多个动作,而我们的业务要求是某个动作在执行错误的时候该进程所有的动作都不再执行,全部执行成功才算成功,否则就回到执行之前的状态,这就需要用到事务的处理。 (推荐学习:PHP视频教程

    原生代码如下:

    <?php
    	$link = mysqli_connect('localhost','username','password');					//创建链接
    
    	if(!$link) exit('数据库连接失败');											//判断是否链接成功
    
    	mysqli_set_charset($link , 'utf8');											//设置字符集
    	
    	mysqli_select_db($link,'myDatabase');										//选择数据库
    
    	$sql1 = "正确的插入语句";													//准备sql语句
    	$sql2 = "错误的插入语句";													
    
    	$result1 = mysqli_query($link , $sql1);										//发送sql语句
    	$result2 = mysqli_query($link , $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 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) {
    	 //回滚事务
         $pdo->rollBack();
    	 echo "数据回滚";    
    }

    TP5 框架中使用事务

    //模型方法
    function demo{
    	//开启事务
    	$this->startTrans();
    	
    	//业务逻辑操作
    	$data['id'] = 1;
    	$res = $this->insertUserInfo($data);		//保存用户信息
    	
    	if($res) {
    		//提交事务
    		$this->commit();
    		return $res;
    	} else {
    		//事务回滚
    		$this->rollback();
    	}
    }

    以上就是php什么时候用事务的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:php后端开发主要会哪些技术 下一篇:php文件手机怎么打开
    VIP会员

    相关文章推荐

    • php能写网页吗• php哪个国家开发的• php拿到源码要怎么运行• php怎么创业

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网