mysql>mysql事務處理php代碼實現事務的處理能夠經過PHP預約義類mysqli的如下方法實現。
autocommit(boolean):該方法用於限定查詢結果是否自動提交,若是該方法的參數爲true則自動提交,若是參數爲false則關閉自動提交。MySQL數據庫默認爲自動提交。
rollback():利用mysqli類中的該方法能夠實現事務的回滾。
commit():利用該方法能夠實現提交全部查詢。 javascript
<?php
include_once("conn.php");
$id=$_GET[id];
$conn->autocommit(false); // 設置爲手動提交事務
if(!$conn->query("delete from tb_sco where id='".$id."'"))
{
$conn->rollback(); // 提交事務//發生錯誤 事務回滾
}
if(!$conn->query("delete from tb_stu where id='".$id."'"))
{
$conn->rollback(); //發生錯誤 事務回滾
}
$conn->commit(); //提交事務
$conn->autocommit(true); // 設置事務爲手動
echo "ok"
?> php
列二 java
<?php mysql
require('connectDB.php'); //創建數據庫鏈接
mssql_query("BEGIN TRANSACTION DEPS02_DEL"); //開始事務
$delete_dep_sql="DELETE FROM TBLDEPARTMENT WHERE DEPTID='{$_GET[deptid]}'";
// echo $delete_dep_sql."<br>";
mssql_query($delete_dep_sql); //操做數據庫
// var_dump($del_result);
$delete_result = mssql_query("select @@ROWCOUNT as id");
$delete_info = mssql_fetch_array($delete_result);
$delete_rows = $delete_info[0];
// var_dump($delete_rows);
mssql_free_result($delete_result);
echo "<script language=javascript>";
if(true){ //判斷是否回滾提交
mssql_query("COMMIT TRANSACTION DEPS02_DEL"); //提交事務
echo "alert('delete success!');";
}else{
mssql_query("ROLLBACK TRANSACTION DEPS02_DEL"); //回滾事務
echo "alert('delete faile!');";
}
echo "</script>";mssql_close();
?> sql
php+mssql 的事務處理主要是以mssql的語言實現,php只是給其提供個與數據庫對話的空間,若是以{BEGIN TRANSACTION }開始,後續的mssql就在該事務期間裏,等待提交或回滾得指令;若是不在事務期間內就每一個語句直接操做數據庫。 數據庫
原文複製與 http://hi.baidu.com/mevyen/item/51f413945d2295d81a49dfac