国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php下pdo的mysql事務處理用法實例

2024-05-04 23:29:30
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php下pdo的mysql事務處理用法,以實例形式分析了基于pdo的事物提交與回滾操作的用法,具有一定的參考借鑒價值,需要的朋友可以參考下
 
 

本文實例講述了php下pdo的mysql事務處理用法。分享給大家供大家參考。具體分析如下:

php+mysql事務處理的幾個步驟:

1.關閉自動提交 2.開啟事務處理 3.有異常就自動拋出異常提示再回滾 4.開啟自動提交

注意:mysql只有這個InnoDB驅動是支持事務處理的,默認MyIsAM驅動不支持,下面是實例代碼:

復制代碼代碼如下:
<?php 
    try{ 
        $pdo=new pdo("mysql:host=localhost;dbname=mydb", "root", "root", array(PDO::ATTR_AUTOCOMMIT=>0));//最后是關閉自動提交 
        //$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 0);//這個是通過設置屬性方法進行關閉自動提交和上面的功能一樣 
        $pdo->setAttribute(PDO::ATTR_ERRMODE,  PDO::ERRMODE_EXCEPTION);//開啟異常處理 
    }catch(PDOException $e){ 
        echo "數據庫連接失敗:".$e->getMessage(); 
        exit;
    } 
    /* 
     * 事務處理 
     * 
     *   張三從李四那里買了一臺 2000 元的電腦 
     *     從張三帳號中扣出 2000元 
     *     向李四賬號中加入 2000元 
     *     從商品表中減少一臺電腦 
     *     MyIsAM  InnoDB 
     */ 
    try{ 
        $pdo->beginTransaction();//開啟事務處理        
        $price=500; 
        $sql="update zhanghao set price=price-{$price} where id=1"; 
        $affected_rows=$pdo->exec($sql); 
        if(!$affected_rows) 
            throw new PDOException("張三轉出失敗");//那個錯誤拋出異常 
        $sql="update zhanghao set price=price+{$price} where id=3"; 
        $affected_rows=$pdo->exec($sql);       
        if(!$affected_rows) 
            throw new PDOException("向李四轉入失敗"); 
        echo "交易成功!"; 
        $pdo->commit();//交易成功就提交 
    }catch(PDOException $e){ 
        echo $e->getMessage(); 
        $pdo->rollback(); 
    }   
    $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);//自動提交,如果最后不自動提交,轉賬是不成功的   
    //設置錯誤報告模式 ERRMODE_SILENT    ERRMODE_WARNING 
?>

 

希望本文所述對大家的php程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗洪县| 隆林| 漠河县| 谢通门县| 呼玛县| 资源县| 兴安盟| 美姑县| 玉屏| 金塔县| 罗田县| 龙门县| 安西县| 监利县| 昌都县| 哈密市| 富川| 荣成市| 泗洪县| 清丰县| 肇州县| 乌拉特前旗| 山阴县| 新泰市| 永福县| 河源市| 丹江口市| 鄂托克前旗| 阳新县| 宁波市| 福建省| 青冈县| 岢岚县| 毕节市| 涟源市| 措勤县| 金川县| 得荣县| 余庆县| 乐业县| 富阳市|