PHP对MYSQL数据库进行事务处理及表锁定

$link = mysql_connect('localhost', 'root', '');

            if (!$link) {

            die('Could not connect: ' . mysql_error());

            }

            mysql_select_db('test', $link) or die ('Can/'t use [test]: ' . mysql_error());

            mysql_query("BEGIN"); //或者mysql_query("START TRANSACTION");

            //若不使用事務,則$sql執行成功,$sql1執行失敗

            $sql = " insert into test values('11','88') ";

            $sql1 = " insert into test values('11','88','444') ";

            $res = mysql_query($sql);

            $res1 = mysql_query($sql1);

            //因爲使用了事務,則兩個insert都執行失敗

            if($res &
&
 $res1){

            mysql_query("COMMIT");

            } else{

            mysql_query("ROLLBACK");

            }

            mysql_close($link);





// connect db....

            mysql_query("SET AUTOCOMMIT=0"); //設置mysql不自動提交,需自行用commit語句提交

            $sql = " insert into test values('11','88') ";

            $sql1 = " insert into test values('11','88','444') ";

            $res = mysql_query($sql);

            $res1 = mysql_query($sql1);

            //因爲使用了事務,則兩個insert都執行失敗

            if($res &
&
 $res1){

            mysql_query("COMMIT");

            }else{

            mysql_query("ROLLBACK");

            }







//对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法:

            //MyISAM &
 InnoDB 都支持,

            //Notes:query語句不能寫在一起如:mysql_query("select * from a;select * from b;");

            $sql_1=" LOCK TABLES test WRITE ";

            mysql_query($sql_1);

            $sql_2=" INSERT INTO test VALUES('".$a."','".$b."') ";

            if(mysql_query($sql_2)){

            echo 'successful!';

            }else{

            echo 'Unsuccessful!';

            }

            $sql_3=" UNLOCK TABLES ";







            mysql_query($sql_3);

            // close db...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值