84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
用了try catch 是不是就不需要再用mysql的事务了?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
看你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
pdo
mysqli
rollback
要分清楚try catch是属于php java 这类的逻辑操作的东西,而transation是属于数据库的东西,两者可以配合但是不能替代
php
java
transation
看你try catch是否有对数据库进行操作,当然涉及对多表更新插入,为了保证数据的完整性,必须开启事务操作
取决于你的catch里是什么,如果try后面就一句,抛异常了,就没有commit,OK。
如果doOne执行了,你没有用事务,他autocommit了。你再catch要把doOne的单独回滚还是怎么办?
下面是两句,如果你有10句打算怎么catch?
事务和
try catch
是两个东西,之所以在启动事务的时候使用try catch
是因为如果在使用pdo
mysqli
这类的扩展的时候,数据库报错会给 php 返回一个错误,让 php 执行的程序终止,从而不能执行到rollback
这一步的函数命令(在执行录入的时候程序就中断了),而使用try catch
再执行事务操作的时候就安全许多要分清楚
try catch
是属于php
java
这类的逻辑操作的东西,而transation
是属于数据库的东西,两者可以配合但是不能替代