©
本文档使用 PHP中文网手册 发布
(PHP 4 >= 4.3.0, PHP 5)
sybase_set_message_handler — Sets the handler called when a server message is raised
$handler
[, resource $link_identifier
] )sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.
handler
The handler expects five arguments in the following order: message
number, severity, state, line number and description. The first four
are integers. The last is a string. If the function returns FALSE
,
PHP generates an ordinary error message.
link_identifier
If the link identifier isn't specified, the last opened link is assumed.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 sybase_set_message_handler() callback function
<?php
function msg_handler ( $msgnumber , $severity , $state , $line , $text )
{
var_dump ( $msgnumber , $severity , $state , $line , $text );
}
sybase_set_message_handler ( 'msg_handler' );
?>
Example #2 sybase_set_message_handler() callback to a class
<?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' ));
?>
Example #3 sybase_set_message_handler() unhandled messages
<?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' );
?>
Note: 此函数仅适用于对 Sybase 使用 CT 库接口,而不适用于 DB 库。
[#1] [2003-06-19 14:23:50]
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