Добрый день!
Используется связка php+mssql.
В базе есть процедура с блоком try catch
Begin try
...
Throw 50000, 'test throw', 1
...
End try
Begin catch
Select error_message();
Throw;
End catch
При прогоне в мсстудио все корректно: транзакции прекращаются, выводится текст ошибки.
При прогоне в php тоже транзакции прекращаются, но не генерируется исключение и я не могу определить завершилась ли процедура корректно или с исключением. Как исправить или как отлавливать?
Исключения в БД MSSQL и исключения в PHP - это две абсолютно разные сущности, не связанные друг с другом никак от слова совсем.
Для обработки ошибок возникших в БД используйте функции обработки ошибок используемого вами драйвера. Если это, например, PDO, то PDOStatement::errorInfo, если SQLSRV, то sqlsrv_errors
Для того, чтобы MSSQL вернул ошибку в драйвер, используемый PHP, в блоке catch
вместо Throw;
используйте RAISEERROR(...)
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть директория, в ней просто громаднейшее кол-во файлов [странные люди] и дир-а постоянно пополняется