mysql pdo 中文手册_PDO 事务处理 - [ MySql参考手册 ] - 在线原生手册 - php中文网

PDO 事务处理

PDO 事务对象方法

方法描述beginTransaction()启动一个事务

commit()提交一个事务

rollBack()回滚一个事务

inTransaction()检测是否在一个事务内

注意:当需要使用事务的时候,数据库表引擎不能是 MyISAM ,必须要是 InnoDB。

try {

$host = 'mysql:host=localhost;dbname=test';

$pdo = new PDO($host, 'root', 'aaaaaa', [PDO::ATTR_AUTOCOMMIT => 0]);

// 建表 SQL

$sql = <<

CREATE TABLE IF NOT EXISTS user_account(

id INT UNSIGNED NOT NULL AUTO_INCREMENT,

username VARCHAR(20) NOT NULL UNIQUE,

money DECIMAL(8,2) NOT NULL,

PRIMARY KEY (id)

)ENGINE=InnoDB DEFAULT CHARSET UTF8 COMMENT "用户账户表";

EOF;

$pdo->exec($sql); // 使用 PDO 对象的 exec()方法执行建表语句

/*$sql = 'INSERT INTO user_account (username, money) VALUES (:username, :money),(:username2, :money2)';

$statement = $pdo->prepare($sql); // 预处理 SQL

$statement->bindParam(':username', $username, PDO::PARAM_STR);

$statement->bindParam(':money', $money);

$statement->bindParam(':username2', $username2, PDO::PARAM_STR);

$statement->bindParam(':money2', $money2);

$username = 'luo';

$money = 3000.00;

$username2 = 'li';

$money2 = 3000.00;

$statement->execute(); // 执行预处理*/

// 开启事务

$pdo->beginTransaction();

$res = $pdo->exec('UPDATE user_account SET money = money - 2000 WHERE username = "li"');

if ($res == 0) {

throw new PDOException('li 转账失败');

}

$res2 = $pdo->exec('UPDATE user_account SET money = money + 2000 WHERE username = "luo"');

if ($res2 == 0) {

throw new PDOException('luo 接受转账失败');

}

$pdo->commit();

} catch (PDOException $e) {

echo $e->getMessage();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
php开发人员的文档,并且是中文的。 PHP 手册 Mehdi Achour Friedhelm Betz Antony Dovgal Nuno Lopes Philip Olson Georg Richter Damien Seguy Jakub Vrana 其他贡献者 编辑 Gabor Hojtsy 王远之 肖理达 肖盛文 黄啸宇 宋琪 陈伯乐 刘铭 崔岩 2005-11-18 版权 © 1997-2005 PHP 文档组 -------------------------------------------------------------------------------- 前言 作者和贡献者 I. 入门指引 1. 简介 2. 简明教程 II. 安装与配置 3. 安装前需要考虑的事项 4. Unix 系统下的安装 5. Mac OS X 系统下的安装 6. Windows 系统下的安装 7. PECL 扩展库安装 8. 还有问题? 9. 运行时配置 III. 语言参考 10. 基本语法 11. 类型 12. 变量 13. 常量 14. 表达式 15. 运算符 16. 流程控制 17. 函数 18. 类与对象(PHP 4) 19. 类与对象(PHP 5) 20. 异常处理 21. 引用的解释 IV. 安全 22. 简介 23. 总则 24. 以 CGI 模式安装时 25. 以 Apache 模块安装时 26. 文件系统安全 27. 数据库安全 28. 错误报告 29. 使用 Register Globals 30. 用户提交的数据 31. 魔术引号 32. 隐藏 PHP 33. 保持更新 V. 特点 34. 用 PHP 进行 HTTP 认证 35. Cookie 36. 会话 37. 处理 XForms 38. 文件上传处理 39. 使用远程文件 40. 连接处理 41. 数据库永久连接 42. 安全模式 43. PHP 的命令行模式 VI. 函数参考 I. .NET 函数 II. Apache 特有函数 III. Alternative PHP Cache IV. Advanced PHP debugger V. Array 数组函数 VI. Aspell 函数(已废弃) VII. BC math 高精度数学函数 VIII. PHP bytecode Compiler IX. Bzip2 压缩函数 X. Calendar 日历函数 XI. CCVS API Functions [deprecated] XII. Classes/Objects 类/对象函数 XIII. Classkit Functions XIV. ClibPDF Functions XV. COM 和 .Net(Windows)函数 XVI. Crack Functions XVII. Character Type Functions XVIII. CURL, Client URL Library Functions XIX. Cybercash Payment Functions XX. Credit Mutuel CyberMUT functions XXI. Cyrus IMAP administration Functions XXII. Date/Time 日期/时间函数 XXIII. DB++ Functions XXIV. Database (dbm-style) Abstraction Layer Functions XXV. dBase Functions XXVI. DBM Functions [deprecated] XXVII. dbx Functions XXVIII. Direct IO Functions XXIX. Directory 目录函数 XXX. DOM Functions XXXI. DOM XML Functions XXXII. Error Handling and Logging Functions XXXIII. Exif Functions XXXIV. Expect Functions XXXV. File Alteration Monitor Functions XXXVI. Forms Data Format Functions XXXVII. filePro Functions XXXVIII. Filesystem 文件系统函数 XXXIX. Firebird/InterBase Functions XL. Firebird/Interbase Functions (PDO_FIREBIRD) XLI. FriBiDi Functions

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值