$_mysqli->rollback();
$_mysql->atuocommit();
和 InnoDB如何使用
回複討論(解決方案)
http://php.net/manual/zh/mysqli.autocommit.php 善用手冊
一個小例子
$mysqli=new mysqli("localhost","root","123456","test");if($mysqli->connect_error){die($mysql->connect_error);}//將提交設為 false(一旦提交,無法復原)$mysqli->autocommit(false);//儲存點 ,把目前記錄儲存$sql1="update account set balance=balance-1 where id=1";$sql2="update account set balance=balance+1 where id=2";$b1=$mysqli->query($sql1);$b2=$mysqli->query($sql2);if(!$b1||!$b2){//復原$mysqli->rollback();echo "失敗--".$mysqli->error;}else{//提交$mysqli->commit();echo "成功";}$mysqli->close();
http://php.net/manual/zh/mysqli.autocommit.php 善用手冊
看手冊和善用是兩個行為和邏輯,看,你不一定善,善是一種結果而不是一種隨意,想善不一定就善,但是想看就能馬上看。因為看是一種行為
一個小例子
$mysqli=new mysqli("localhost","root","123456","test");if($mysqli->connect_error){die($mysql->connect_error);}//將提交設為 false(一旦提交,無法復原)$mysqli->autocommit(false);//儲存點 ,把目前記錄儲存$sql1="update account set balance=balance-1 where id=1";$sql2="update account set balance=balance+1 where id=2";$b1=$mysqli->query($sql1);$b2=$mysqli->query($sql2);if(!$b1||!$b2){//復原$mysqli->rollback();echo "失敗--".$mysqli->error;}else{//提交$mysqli->commit();echo "成功";}$mysqli->close();
結構很清晰。