【问题标题】:Pear MDB2 class and raiserror exceptions in SQL ServerSQL Server 中的 Pear MDB2 类和 raiserror 异常
【发布时间】:2011-02-15 09:29:09
【问题描述】:

在 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");

没有输出。怎么了?

【问题讨论】:

    标签: php sql-server pear mdb2


    【解决方案1】:

    验证返回的结果对象通过

    $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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多