2012-03-01 12 views
1

私は次の構造を持つストアドプロシージャを持っている:ストアドプロシージャで例外が発生したかどうかを確認する方法?

CREATE PROCEDURE MyStoredProcedure(IN code INTEGER) BEGIN 
    DECLARE EXIT handler FOR SQLEXCEPTION 
    BEGIN 
     ROLLBACK; 
     SET autocommit = 1; 
     SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; 
    END; 

    SET autocommit = 0; 
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED; 
     -- code here 
    COMMIT; 

    SET autocommit = 1; 
    SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; 
END; 

そして、私が使用してPDOを経由して、それを呼んでいる:

$dbh->prepare("CALL MyStoredProcedure(?);"); 

それは正常に動作しますが、私は場合はPHPからdectedする方法が必要ですストアドプロシージャで例外が発生し、ロールバックされるか、エラーなしで処理されます。これはできますか?

答えて

0

プロシージャにoutパラメータを追加し、エラーが発生した場合は0または1を返します。

関連する問題