0
我有麻煩解決以下問題。讓我們假設我有這樣的:有例外的PDO交易
class UserMapper{
private $Pdo;
function __construct(PDO $Pdo) {
$this->Pdo = $Pdo;
}
function DeleteUser(UserID){
try{
$Pdo->beginTransaction();
// some logic here which eventually throws exception
$Pdo->commit();
}
catch(Exception $e){
// exception thrown from the upper code goes here
// I need to log error with further details into some event log, e.g. like this
$EventLog->LogEvent("error occured" . $e->getMessage()); //
}
}
上面的代碼的問題是,如果異常被逮住,則PDO是目前在「beginTranstacion」狀態,因此該日誌不會在數據庫中更新。
那麼,這可以通過在catch事件中提交來解決,但是當沒有異常時它會導致問題。
有沒有解決方案,我可能會失蹤?
錯誤...我確定你正確地試圖將日誌保存到**相同的數據庫,只是失敗了嗎?** –
'功能DeleteUser(UserID)'該參數不知何故不是變量? –
這是,我只是用手輸入整個代碼,所以這裏輸入一個:) 是的,對於同一個數據庫,但沒有問題,因爲錯誤不是PDOException,而是我的自定義異常指示某些錯誤 – user3370402