如何知道存储过程是否引发异常?

时间:2012-03-01 17:30:11

标签: php mysql pdo

我有一个具有以下结构的存储过程:

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中获取的方法#34;或者它经历了没有错误。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

在程序中添加一个out参数,如果出现错误,则将0或1表示成功