sybase_set_message_handler()
(PHP 4 >= 4.3.0, PHP 5)
Sets the handler called when a server message is raised
WarningThis function wasREMOVEDin PHP 7.0.0.
说明
sybase_set_message_handler(callable $handler[,resource $link_identifier]): bool
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 库。
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