0

在 SQL Server 中,可能会使用 raiserror() 引发错误。我想使用不中断连接的严重性。此错误在存储过程中引发。在 SQL Management Studio 中一切正常,执行此 SP 时出现错误代码。但是当试图在 PHP5 中通过 MDB2 执行这个 SP 时,这是行不通的。我得到的只是一个空数组。

MDB2 对象通过以下方式创建(包括所需的选项):

$db =& MDB2::connect($dsn);
$db->setFetchMode(MDB2_FETCHMODE_ASSOC);
$db->setOption('portability',MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL);

以下工作(我收到 PEAR 错误):

$db->query("RAISERROR('test',11,0);");

但是,当调用通过以下方式引发此错误的存储过程时

$db->query("EXEC sp_raise_error");

没有输出。怎么了?

4

1 回答 1

2

通过验证返回的结果对象

$res = $db->query(..)
if (MDB2::isError($res)) {
    echo $res->getMessage() . "\n" . $res->getUserInfo();
    die();
}

http://pear.php.net/manual/en/package.database.mdb2.intro-fetch.php

于 2010-10-12T08:46:04.693 回答