You can check for Showplan messages using this callback. Showplan message numbers go from 6201 through 6292 (at least here, on SQL Server/11.0.3.3).
select error, description from master..sysmessages where error between 6201 and 6292
sybase_set_message_handler
(PHP 4 >= 4.3.0, PHP 5)
sybase_set_message_handler — Define um manipulador para quando uma mensagem do servidor é enviada
Descrição
sybase_set_message_handler() define uma função do usuário para manipular as funções do usuário geradas pelo servidor. Você deve o nome de uma função global, ou usar uma matriz para especificar um objeto e o nome de um método.
Parâmetros
- handler
-
O manipulador espera cinco argumentos na seguinte ordem: número da mensagem, severidde, estado, número da linha e descrição. Os quatro primeiros são inteiros. O último é uma string. Se a função retornar FALSE, o PHP gera uma mensagem de erro comum.
- connection
-
Valor Retornado
Retorna TRUE em caso de sucesso ou FALSE em falhas.
Histórico
| Versão | Descrição |
|---|---|
| 4.3.5 | O parâmetro connection foi adicionado. |
Exemplos
Exemplo #1 Exemplo da sybase_set_message_handler()
<?php
function msg_handler($msgnumber, $severity, $state, $line, $text)
{
var_dump($msgnumber, $severity, $state, $line, $text);
}
sybase_set_message_handler('msg_handler');
?>
Exemplo #2 Exemplo de sybase_set_message_handler() usando uma classe
<?php
class Sybase {
function handler($msgnumber, $severity, $state, $line, $text)
{
var_dump($msgnumber, $severity, $state, $line, $text);
}
}
$sybase= new Sybase();
sybase_set_message_handler(array($sybase, 'handler'));
?>
Exemplo #3 Exemplo de sybase_set_message_handler() com mensagens não manipuladas
<?php
// Return FALSE from this function to indicate you can't handle
// this. The error is printed out as a warning, the way you're used
// to it if there is no handler installed.
function msg_handler($msgnumber, $severity, $state, $line, $text)
{
if (257 == $msgnumber) {
return false;
}
var_dump($msgnumber, $severity, $state, $line, $text);
}
sybase_set_message_handler('msg_handler');
?>
Notas
Nota: Esta função somente está disponível quando utilizando a biblioteca de interface CT do Sybase, mas não pela biblioteca DB.
sybase_set_message_handler
