欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中執(zhí)行MYSQL事務(wù)解決數(shù)據(jù)寫入不完整等情況

 更新時(shí)間:2014年01月07日 17:00:32   作者:  
事務(wù)可以進(jìn)行模擬SQL操作,當(dāng)所有的SQL都操作成功的時(shí)候才進(jìn)行SQL操作,只要有一個(gè)操作失敗就回滾當(dāng)前事務(wù)的所有SQL操作,避免出現(xiàn)上面描述中出現(xiàn)的數(shù)據(jù)寫入不完整等情況
近來(lái)稍有時(shí)間研究了下MYSQL中的事務(wù)操作,在很多場(chǎng)合下很是適用,譬如在注冊(cè)的時(shí)候需要初始化很多張關(guān)聯(lián)表的時(shí)候,問(wèn)答回復(fù)的時(shí)候需要至少同時(shí)操作兩張表,這些都會(huì)在某些時(shí)候只能成功更新一張表,而另外的SQL語(yǔ)句出現(xiàn)錯(cuò)誤,正常的操作會(huì)導(dǎo)致初始化了一張表 ,其他的都木有能初始化,這個(gè)時(shí)候就會(huì)導(dǎo)致用戶表里的用戶信息已經(jīng)執(zhí)行插入,導(dǎo)致提示注冊(cè)失敗,但是用戶已經(jīng)注冊(cè)了部分信息,這個(gè)時(shí)候需要程序員去數(shù)據(jù)庫(kù)刪除相應(yīng)的數(shù)據(jù)是一個(gè)比較不好的事情。

因此這邊考慮使用事務(wù),事務(wù)可以進(jìn)行模擬SQL操作,當(dāng)所有的SQL都操作成功的時(shí)候才進(jìn)行SQL操作,只要有一個(gè)操作失敗就回滾當(dāng)前事務(wù)的所有SQL操作,避免出現(xiàn)上面描述中出現(xiàn)的數(shù)據(jù)寫入不完整等情況。

下面是鄙人寫的一小段代碼,歡迎大家參考和提出意見:
復(fù)制代碼 代碼如下:

/**
* @todo 多條sql的事務(wù)處理
* @param $sqls array
* @return boole true/false
*/
public function doArraySqlActionsTran($password,$sqls){
$db = $this -> doSqlLink($password);//打開數(shù)據(jù)庫(kù)鏈接
$db -> autocommit(FALSE);//設(shè)置為不自動(dòng)提交,因?yàn)镸YSQL默認(rèn)立即執(zhí)行
//獲取SQL執(zhí)行結(jié)果數(shù)組
for ($i=0;$i<count($sqls);$i++){
$result[$i] = $db -> query($sqls[$i]);
}
//解析SQL執(zhí)行結(jié)果數(shù)組
for ($j=0;$j<count($result);$j++){
if ($result[$j]==FALSE){
$result[$j]='false';
}else{
$result[$j]='true';
}
}
//查找SQL結(jié)果數(shù)組中是否存在false結(jié)果集
if (in_array('false',$result)){
$sqlResult=FALSE;
}else{
$sqlResult==TRUE;
}
//根據(jù)結(jié)果集進(jìn)行數(shù)據(jù)庫(kù)回滾或者執(zhí)行操作
if ($sqlResult==FALSE){
$db -> rollback();//判斷當(dāng)執(zhí)行失敗時(shí)回滾
$return=FALSE;// 正式環(huán)境中使用
//$return='ROOLBACK';//test 標(biāo)記使用
}else{
$db -> commit();//執(zhí)行事務(wù)s
$return=TRUE;// 正式環(huán)境中使用
//$return='COMMIT';//test 標(biāo)記使用
}
$db->autocommit(true); //設(shè)置為非自動(dòng)提交——事務(wù)處理
$db->close();//關(guān)閉連接
return $return;
}

到此事務(wù)執(zhí)行批量SQL操作基本完成,謝謝大家!

相關(guān)文章

  • PHP調(diào)用JAVA的WebService簡(jiǎn)單實(shí)例

    PHP調(diào)用JAVA的WebService簡(jiǎn)單實(shí)例

    本篇文章主要是對(duì)PHP調(diào)用JAVA的WebService簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-03-03
  • PHP下載遠(yuǎn)程圖片的幾種方法總結(jié)

    PHP下載遠(yuǎn)程圖片的幾種方法總結(jié)

    這篇文章主要介紹了PHP下載遠(yuǎn)程圖片的幾種方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Gregarius中文日期格式問(wèn)題解決辦法

    Gregarius中文日期格式問(wèn)題解決辦法

    Gregarius支持中文的程度很不錯(cuò),唯一的缺陷就是在日期格式上會(huì)出現(xiàn)亂碼。其實(shí)只要修改根目錄下util.php文件的rss_locale_date方法就可以解決這個(gè)問(wèn)題,希望可以幫助使用Gregarius的朋友,修改后的方法代碼如下:
    2008-04-04
  • 詳解PHP原生DOM對(duì)象操作XML的方法

    詳解PHP原生DOM對(duì)象操作XML的方法

    大家都知道對(duì)于操作XML類型文件,PHP內(nèi)置有一套DOM對(duì)象可以進(jìn)行處理。對(duì)XML的操作,從創(chuàng)建、添加到修改、刪除都可以使用DOM對(duì)象中的函數(shù)來(lái)進(jìn)行。下面這篇文章通過(guò)示例代碼給大家介紹如何進(jìn)行操作,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-10-10
  • AJAX的使用方法詳解

    AJAX的使用方法詳解

    本篇文章主要介紹了AJAX的使用的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-04-04
  • php如何利用ffmpeg獲取視頻第一幀為縮略圖

    php如何利用ffmpeg獲取視頻第一幀為縮略圖

    用PHP生成視頻的縮略圖,在網(wǎng)上比較一致的方法就是通過(guò)ffmpeg來(lái)做的,下面這篇文章主要給大家介紹了關(guān)于php如何利用ffmpeg獲取視頻第一幀為縮略圖的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 15種PHP Encoder的比較

    15種PHP Encoder的比較

    15種PHP Encoder的比較...
    2007-03-03
  • php的SimpleXML方法讀寫XML接口文件實(shí)例解析

    php的SimpleXML方法讀寫XML接口文件實(shí)例解析

    在php5中讀寫xml文檔是非常方便的,可以直接使用php的SimpleXML方法來(lái)快速解析與生成xml格式的文件,本文實(shí)例說(shuō)明如下,需要的朋友可以參考下
    2014-06-06
  • PHP中$_SERVER使用說(shuō)明

    PHP中$_SERVER使用說(shuō)明

    這篇文章主要介紹了PHP中$_SERVER使用說(shuō)明的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • PHP有序表查找之二分查找(折半查找)算法示例

    PHP有序表查找之二分查找(折半查找)算法示例

    這篇文章主要介紹了PHP有序表查找之二分查找(折半查找)算法,簡(jiǎn)單介紹了二分查找法的概念、原理并結(jié)合實(shí)例形式分析了php基于二分查找算法進(jìn)行有序線性表查找的相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02

最新評(píng)論