正在某些顺序正在执行的时分需求进行多个举措,而咱们的营业要求是某个举措正在执行谬误的时分该过程一切的举措都再也不执行,全副执行胜利才算胜利,不然就回到执行以前的状态,这就需求用到事务的解决。 (保举学习: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->co妹妹it(); //PDO PDOStatement PDOException } catch(PDOException $e) { //回滚事务 $pdo->rollBack(); echo "数据回滚"; }
TP5 框架中应用事务
//模子办法 function demo{ //开启事务 $this->startTrans(); //营业逻辑操作 $data['id'] = 1; $res = $this->insertUserInfo($data); //保留用户信息 if($res) { //提交事务 $this->co妹妹it(); return $res; } else { //事务回滚 $this->rollback(); } }
以上就是php何时用事务的具体内容,更多请存眷资源魔其它相干文章!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!