php中try catch 和 mysql中的事务的关系
伊谢尔伦
伊谢尔伦 2017-06-07 09:23:24
[PHP讨论组]

用了try catch 是不是就不需要再用mysql的事务了?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(3)
三叔

看你try catch是否有對數據庫進行操作,當然涉及對多表更新插入,為了保證數據的完整性,必須開啟事務操作

//開啟事務
try {
//完成提交事務
} catch(throw $e) {
//rollback
}
给我你的怀抱

取决于你的catch里是什么,如果try后面就一句,抛异常了,就没有commit,OK。
如果doOne执行了,你没有用事务,他autocommit了。你再catch要把doOne的单独回滚还是怎么办?
下面是两句,如果你有10句打算怎么catch?

try {
 doOne
 doTwo
} catch(throw $e) {
//rollback
}
天蓬老师

事务和 try catch是两个东西,之所以在启动事务的时候使用try catch是因为如果在使用pdo mysqli这类的扩展的时候,数据库报错会给 php 返回一个错误,让 php 执行的程序终止,从而不能执行到 rollback这一步的函数命令(在执行录入的时候程序就中断了),而使用try catch 再执行事务操作的时候就安全许多

要分清楚try catch是属于php java 这类的逻辑操作的东西,而transation是属于数据库的东西,两者可以配合但是不能替代

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号