在某些程式在執行的時候需要進行多個動作,而我們的業務要求是某個動作在執行錯誤的時候該進程所有的動作都不再執行,全部執行成功才算成功,否則就回到執行前的狀態,這就需要用到事務的處理。
原生:
登入後複製
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中文網其他相關文章!