本文主要和大家介紹PHP mysqli事務操作常用方法,結合執行個體形式分析了php操作mysqli事務的開啟、提交、執行、回退、關閉等實現技巧,需要的朋友可以參考下,希望能協助到大家。
1、
//開啟(true)或關閉(false)本次資料庫連接的自動命令提交事務模式//參數如果設定為 FALSE,則表示關閉 auto-commit。如果設定為 TRUE,則表示開啟 auto-commit(提交任何等待查詢)。bool mysqli::autocommit ( bool $mode )
2、
//回退當前事務bool mysqli::rollback ()
3、
//提交一個事務bool mysqli::commit ()
4、
//關閉先前開啟的資料庫連接bool mysqli::close ()
5、
//對資料庫執行一次查詢//失敗時返回 FALSE,通過mysqli_query() 成功執行SELECT, SHOW, DESCRIBE或 EXPLAIN查詢會返回一個mysqli_result 對象,其他查詢則返回TRUE//參數$resultmode可選。一個常量。可以是下列值中的任意一個://MYSQLI_USE_RESULT(如果需要檢索大量資料,請使用這個)//MYSQLI_STORE_RESULT(預設)mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
程式碼範例:
<?php$mysqli = new mysqli("127.0.0.1","root","111111","test");if ($mysqli->connect_errno){ echo "Failed to connect to MySQL: " . $mysqli->connect_error;}//預設auto-commit 是開啟的,可直接提交sql語句$b1 = $mysqli->query("INSERT INTO test (id,name) values (0,'000')");//若要執行事務,先關閉auto-commit//關閉 auto-commit$mysqli->autocommit(false);$res1 = $mysqli->query("INSERT INTO test (id,n1ame) values (1,'111')");$b2 = $mysqli->query("INSERT INTO test (id,name) values (2,'222')");//有一條失敗則復原,全部成功則提交if(!$res1 || !$b2){ echo '復原!'; $mysqli->rollback();} else { echo '提交!'; $mysqli->commit();}//若想再次自動認可非事務語句,要開啟auto-commit$mysqli->autocommit(true);$b3 = $mysqli->query("INSERT INTO test (id,name) values (3,'333')");//關閉串連$mysqli->close();?>