Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php什么时候用事务

php什么时候用事务

发布时间:2020-06-29   编辑:www.jquerycn.cn
jquery中文网为您提供php什么时候用事务等资源,欢迎您收藏本站,我们将为您提供最新的php什么时候用事务资源

在某些程序在执行的时候需要进行多个动作,而我们的业务要求是某个动作在执行错误的时候该进程所有的动作都不再执行,全部执行成功才算成功,否则就回到执行之前的状态,这就需要用到事务的处理。 (推荐学习: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什么时候用事务的详细内容,更多请关注jquery中文网其它相关文章!

  • 本文原创发布jQuery中文网,转载请注明出处,感谢您的尊重!
  • 您可能感兴趣的文章:
    PHP编程小经验总结
    教你如何打开php文件
    怎么打开php文件
    php mvc开发模式的一点思考
    有关php中session的疑惑
    有关php的ob_flush()与flush()使用方法
    PHP定时更新程序实现代码
    有关php中文乱码的解决方法
    什么是Node.js?Node.js使用详细介绍
    iis中不能开启Gzip压缩的问题

    [关闭]