php事务处理实例详解_PHP
一、php事务处理概述:
事务:是若干事件的集合
事务处理:当所有事件执行成功,事务才执行;若有任何一个事件不能成功执行,事务的其它事件也不被执行。
只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力。这里面,又以InnoDB表类型用的最多,虽然后来发生了诸如Oracle收购InnoDB等令MySQL不爽的事情,但是这类商业事件与技术无关,下面就以InnoDB表类型为例简单说一下MySQL中的事务处理。
二、php事务处理代码:
<?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"; } ?>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu

登入 CakePHP 是一項非常簡單的任務。您只需使用一項功能即可。您可以記錄任何後台程序(如 cronjob)的錯誤、異常、使用者活動、使用者採取的操作。在 CakePHP 中記錄資料很容易。提供了 log() 函數

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫
