Класс PearBard MDB2 и исключение ошибок raiserror в SQL Server - PullRequest
0 голосов
/ 04 мая 2010

в SQL Server возможно вызвать ошибку с помощью raiserror (). Я хочу использовать серьезность, которая не прерывает соединение. Эта ошибка возникает в хранимой процедуре. В SQL Management Studio все в порядке, и я получаю свой код ошибки при выполнении этого SP. Но при попытке выполнить этот SP через MDB2 в PHP5 это не работает. Все, что я получаю, это пустой массив.

Объект 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");

нет вывода. Что не так?

1 Ответ

2 голосов
/ 12 октября 2010

Проверить возвращенные объекты результата с помощью

$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

...