mysql之事务_MySQL

WBOY
WBOY원래의
2016-06-01 13:30:331011검색

bitsCN.com

mysql之事务

 

事务处理

begin        开始一个事物

 

commit        事务确认

rollback    事务回滚

 

end        事务结束

innodb下可以实现事务

 

开始执行事务时如果在事务执行的过程中出现错误那么事务会回滚之前执行的都会失效

在创建表时,就可以为table选择InnoDB引擎了。如果是以前创建的表,可以使用

 

alter table table_name engine=InnoDB
来改变数据表的引擎以支持事务。

 

例:

<?php    $conn = mysql_connect(&#39;localhost&#39;,&#39;root&#39;,&#39;&#39;) or die ("数据连接错误!!!");    mysql_select_db(&#39;shop&#39;,$conn);    mysql_query("set names &#39;utf8&#39;"); //使用utf8中文编码;    //开始一个事务    mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");    $sql = "INSERT INTO main (num) VALUES (123)";    $sql2 = "INSERT INTO main (num1) VALUES (456)";//这条我故意写错    //如果不用事务或者用的而不是innodb引擎则$sql会成功$sql2会失败    //用事务如果其中一条出现错误那么两条数据都不会执行成功    $res = mysql_query($sql);    $res1 = mysql_query($sql2);      if($res && $res1){    mysql_query("COMMIT");    echo &#39;提交成功。&#39;;    }else{    mysql_query("ROLLBACK");    echo &#39;数据回滚。&#39;;    }    mysql_query("END"); ?>

 


bitsCN.com
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.