php中try catch 和 mysql中的事務的關係
伊谢尔伦
伊谢尔伦 2017-06-07 09:23:24
0
3
1003

用了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
}
Peter_Zhu

事務和try catch是兩個東西,之所以在啟動事務的時候使用try catch是因為如果在使用pdo mysqli這類的擴展的時候,數據庫報錯會給php 返回一個錯誤,讓php 執行的程式終止,從而不能執行到rollback這一步的函數命令(在執行錄入的時候程序就中斷了),而使用try catch 再執行事務操作的時候就安全許多

要分清楚try catch是屬於php java 這類的邏輯操作的東西,而transation是屬於資料庫的東西,兩者可以配合但是不能替代

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板