php结合mysql与mysqli扩展处理事务的方法
PHP结合MySQL与mysqli扩展处理事务的方法详解
本文将通过实例展示如何在PHP中使用MySQL和mysqli扩展来处理事务。对于希望了解这一领域的朋友,本文提供了宝贵的参考。
让我们了解两种处理事务的方法。
方法一:使用mysqli扩展处理事务
```php
$mysqli = new mysqli('localhost', 'root', 'password', 'test');
$mysqli->autocommit(false); // 开始事务
$query = "UPDATE a SET money = money + 30 WHERE a_id = '1'";
$mysqli->query($query);
$query = "UPDATE b SET money = money - 30 WHERE b_id = '1'";
$mysqli->query($query);
$mysqli->commit(); // 提交事务
// $mysqli->rollback(); // 如果需要,可以回滚事务
$mysqli->autocommit(true); // 结束事务后自动提交
```
方法二:使用mysql扩展处理事务(不推荐)
请注意,使用mysql扩展处理事务并不推荐,因为它已被视为过时,推荐使用mysqli扩展。为了完整性,我还是会展示这个方法。
```php
mysql_connect('localhost', 'root', 'password');
mysql_select_db('test');
mysql_query('SET AUTOCOMMIT=0'); // 关闭自动提交
mysql_query('BEGIN'); // 开始事务
$query = "UPDATE a SET money = money + 30 WHERE a_id = 1";
mysql_query($query);
$query = "UPDATE b SET money = money - 30 WHERE b_id = 1";
mysql_query($query);
mysql_query('COMMIT'); // 提交事务
// mysql_query('ROLLBACK'); // 如果需要,可以回滚事务
mysql_query('SET AUTOCOMMIT=1'); // 打开自动提交模式
?>
```关于MySQL的事务处理,主要有两种方法:一种是使用begin、rollback、commit命令来实现;另一种是使用set命令来改变MySQL的自动提交模式。推荐使用第一种方法。值得注意的是,只有InnoDB和BDB类型的数据表才支持事务处理,其他类型不支持(切记)。希望本文能对大家学习PHP程序设计有所帮助。对PHP相关内容感兴趣的读者可以查看本站的专题了解更多信息。最后提醒大家在实际使用时应当加入相应的错误处理和异常捕获机制来确保事务的完整性和可靠性。
编程语言
- php结合mysql与mysqli扩展处理事务的方法
- Ueditor百度编辑器的Html模式自动替换样式的解决方
- php使用preg_match()函数验证ip地址的方法
- 基于JavaScript中标识符的命名规则介绍
- javascript实现网页字符定位的方法
- node.js 利用流实现读写同步,边读边写的方法
- ASP常用函数-CLngIP()
- Yii框架连表查询操作示例
- 详解vue项目打包后通过百度的BAE发布到网上的流
- vue配置请求本地json数据的方法
- Laravel 实现Controller向blade前台模板赋值的四种方式
- ASP.NET项目开发中日期控件DatePicker如何使用
- JS解决IOS中拍照图片预览旋转90度BUG的问题
- 详谈jQuery.load()和Jsp的include的区别
- yii去掉必填项中星号的方法
- PHP计算一年多少个星期和每周的开始和结束日期