從我的擴展從Joomla 2.5到3.0,我很苦惱如何做數據庫錯誤處理(因爲GetErrorNum已棄用,另請參閱Joomla! JDatabase::getErrorNum() is deprecated, use exception handling instead)。Joomla 3.0通用數據庫錯誤處理
,這似乎是一個根據上面鏈接的問題,要走的路,是添加以下代碼爲每個db->query()
代碼:
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
在我看來,這使得DB錯誤處理更加尷尬比以前。到目前爲止,我只是在DB調用後調用checkDBError()
函數,該函數查詢ErrorNum並相應地處理任何可能的錯誤。
這是獨立於數據庫的查詢是如何在實際觸發 - 有不同的方法來做到這一點,並在錯誤不同的結果:$db->loadResult()
回報null
上的錯誤,$db->query()
回報false
。所以現在會有不同的檢查不同的數據庫訪問類型。
是否有任何通用的方法來處理這個問題,例如一種告訴Joomla在DB問題上拋出一些例外的方法?或者我必須圍繞DatabaseDriver編寫自己的包裝才能實現這個目標?或者我可能錯過了一些明顯的東西?
或者我應該忽略現在的棄用警告並繼續使用getErrorNum()?我想讓我的擴展能夠面向未來,但我也不想用太尷尬的錯誤處理邏輯來混淆它。
@ user3145373如何在另一個問題上重複這個問題?這個是關於Joomla中的通用數據庫錯誤處理,尤其是。 3.0,而你鏈接的是關於上傳Joomla 2.5中的文件 - 雖然有一些數據庫訪問那裏,我沒有看到**任何**錯誤處理在那裏 – codeling