復制代碼 代碼如下:
/**
* @todo 多條sql的事務處理
* @param $sqls array
* @return boole true/false
*/
public function doArraySqlActionsTran($password,$sqls){
$db = $this -> doSqlLink($password);//打開數據庫鏈接
$db -> autocommit(FALSE);//設置為不自動提交,因為MYSQL默認立即執行
//獲取SQL執行結果數組
for ($i=0;$i<count($sqls);$i++){
$result[$i] = $db -> query($sqls[$i]);
}
//解析SQL執行結果數組
for ($j=0;$j<count($result);$j++){
if ($result[$j]==FALSE){
$result[$j]='false';
}else{
$result[$j]='true';
}
}
//查找SQL結果數組中是否存在false結果集
if (in_array('false',$result)){
$sqlResult=FALSE;
}else{
$sqlResult==TRUE;
}
//根據結果集進行數據庫回滾或者執行操作
if ($sqlResult==FALSE){
$db -> rollback();//判斷當執行失敗時回滾
$return=FALSE;// 正式環境中使用
//$return='ROOLBACK';//test 標記使用
}else{
$db -> commit();//執行事務s
$return=TRUE;// 正式環境中使用
//$return='COMMIT';//test 標記使用
}
$db->autocommit(true); //設置為非自動提交——事務處理
$db->close();//關閉連接
return $return;
}
新聞熱點
疑難解答