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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

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

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

一、php事務(wù)處理概述:

事務(wù):是若干事件的集合事務(wù)處理:當(dāng)所有事件執(zhí)行成功,事務(wù)才執(zhí)行;若有任何一個事件不能成功執(zhí)行,事務(wù)的其它事件也不被執(zhí)行。

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

二、php事務(wù)處理代碼:

try{

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

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

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

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

}catch(PDOException $e){

echo "數(shù)據(jù)庫連接失敗";

exit;

}

try{

$age=10;

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

$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'");//隨意更改使之執(zhí)行成功或失敗

/* 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();//如果執(zhí)行到此處前面兩個更新sql語句執(zhí)行成功,整個事務(wù)執(zhí)行成功

}catch(PDOException $e){

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

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

}

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

//測試是否成功

echo "\n操作結(jié)果為:\n";

$sql="select * from kfry";

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

foreach($result as $v)

{

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

}

?>

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。