test_msghandler_handled.phpt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. Sybase-CT server message handler
  3. --SKIPIF--
  4. <?php require('skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. /* This file is part of PHP test framework for ext/sybase_ct
  8. *
  9. * $Id$
  10. */
  11. require('test.inc');
  12. // {{{ bool sybase_msg_handler(int msgnumber, int severity, int state, int line, string text)
  13. // Handles server messages
  14. function user_message_handler($msgnumber, $severity, $state, $line, $text) {
  15. switch ($msgnumber) {
  16. case 0: // print message
  17. printf("!!! %s\n", trim($text));
  18. return;
  19. case 174: // The function 'GETDATE' requires 0 arguments.
  20. case 11021: // Function GETDATE invoked with wrong number or type of argument(s)
  21. printf("*** Caught '%s'\n", trim($text));
  22. return;
  23. }
  24. printf("Cannot handle message #%d\n", $msgnumber);
  25. return FALSE; // Indicate we can't handle this
  26. }
  27. // }}}
  28. sybase_set_messagehandler_ex('user_message_handler');
  29. $db= sybase_connect_ex();
  30. sybase_min_server_severity(0);
  31. // These are handled
  32. var_dump(sybase_select_ex($db, 'select getdate(NULL)'));
  33. var_dump(sybase_select_ex($db, 'print "Hi"'));
  34. // These aren't
  35. var_dump(sybase_select_ex($db, 'use NULL'));
  36. var_dump(sybase_select_ex($db, 'select convert(datetime, "notadate")'));
  37. sybase_close($db);
  38. ?>
  39. --EXPECTF--
  40. bool(true)
  41. >>> Query: select getdate(NULL)
  42. *** Caught '%s'
  43. <<< Return: boolean
  44. bool(false)
  45. >>> Query: print "Hi"
  46. !!! Hi
  47. <<< Return: boolean
  48. bool(true)
  49. >>> Query: use NULL
  50. Cannot handle message #156
  51. Warning: sybase_query(): Sybase: Server message: Incorrect syntax near the keyword 'NULL'.
  52. (severity 15, procedure N/A) in %s on line %d
  53. <<< Return: boolean
  54. bool(false)
  55. >>> Query: select convert(datetime, "notadate")
  56. Cannot handle message #249
  57. Warning: sybase_query(): Sybase: Server message: Syntax error during explicit conversion of VARCHAR value 'notadate' to a DATETIME field.
  58. (severity 16, procedure N/A) in %s on line %d
  59. <<< Return: boolean
  60. bool(false)