日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php事务处理深入学校,php事务处理实例详解

發布時間:2024/10/8 php 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php事务处理深入学校,php事务处理实例详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、php事務處理概述:

事務:是若干事件的集合事務處理:當所有事件執行成功,事務才執行;若有任何一個事件不能成功執行,事務的其它事件也不被執行。

只要你的MySQL版本支持BDB或InnoDB表類型,那么你的MySQL就具有事務處理的能力。這里面,又以InnoDB表類型用的最多,雖然后來發生了諸如Oracle收購InnoDB等令MySQL不爽的事情,但是這類商業事件與技術無關,下面就以InnoDB表類型為例簡單說一下MySQL中的事務處理。

二、php事務處理代碼:

try{

$pdo=new PDO("mysql:host=localhost;dbname=psp","root","");

$pdo->exec("set names utf8");

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//設置異常處理模式

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);//關閉自動提交

}catch(PDOException $e){

echo "數據庫連接失敗";

exit;

}

try{

$age=10;

$pdo->beginTransaction();//開始事務

$affected_rows1=$pdo->exec("update kfry set k_age=k_age+{$age} where k_name='user1'");

$affected_rows2=$pdo->exec("update kfry set k_age=k_age-{$age} where k_name='user2'");//隨意更改使之執行成功或失敗

/* if($affected_rows1&&$affected_rows2)

{

$pdo->commit();

echo "操作成功";

}else{

$pdo->rollback();

} */

if(!$affected_rows1)

throw new PDOException("加入錯誤");

if(!$affected_rows2)

throw new PDOException("減少錯誤");

echo "操作成功";

$pdo->commit();//如果執行到此處前面兩個更新sql語句執行成功,整個事務執行成功

}catch(PDOException $e){

echo "操作失敗:".$e->getMessage();

$pdo->rollback();//執行事務中的語句出了問題,整個事務全部撤銷

}

$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);

//測試是否成功

echo "\n操作結果為:\n";

$sql="select * from kfry";

$result=$pdo->query($sql);

foreach($result as $v)

{

echo $v['k_name']." ".$v['k_age']."\n";

}

?>

總結

以上是生活随笔為你收集整理的php事务处理深入学校,php事务处理实例详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。