Annotation of embedaddon/php/ext/oci8/tests/error_parse.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test error handling when persistent connection is passed to oci_error()
! 3: --SKIPIF--
! 4: <?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
! 5: --FILE--
! 6: <?php
! 7:
! 8: // As part of the fix for Bug 42134, an error handling difference was
! 9: // noticed when oci_error() was passed a persistent connection. This
! 10: // was fixed and the behavior of oci_error() for all connections types
! 11: // was made consistent.
! 12:
! 13: require(dirname(__FILE__).'/details.inc');
! 14:
! 15: // Test parse error for normal connection
! 16:
! 17: if (!empty($dbase)) {
! 18: $c1 = oci_connect($user,$password,$dbase);
! 19: }
! 20: else {
! 21: $c1 = oci_connect($user,$password);
! 22: }
! 23:
! 24: $s = @oci_parse($c1, "select ' from dual");
! 25: if (!$s) {
! 26: echo "Normal connection: Parse error\n";
! 27: $m = oci_error($c1);
! 28: var_dump($m);
! 29: }
! 30:
! 31: // Test parse error for new connection
! 32:
! 33: if (!empty($dbase)) {
! 34: $c2 = oci_new_connect($user,$password,$dbase);
! 35: }
! 36: else {
! 37: $c2 = oci_new_connect($user,$password);
! 38: }
! 39:
! 40: $s = @oci_parse($c2, "select ' from dual");
! 41: if (!$s) {
! 42: echo "New connection: Parse error\n";
! 43: $m = oci_error($c2);
! 44: var_dump($m);
! 45: }
! 46:
! 47: // Test parse error for persistent connection
! 48:
! 49: if (!empty($dbase)) {
! 50: $c3 = oci_pconnect($user,$password,$dbase);
! 51: }
! 52: else {
! 53: $c3 = oci_pconnect($user,$password);
! 54: }
! 55:
! 56: $s = @oci_parse($c3, "select ' from dual");
! 57: if (!$s) {
! 58: echo "Persistent connection: Parse error\n";
! 59: $m = oci_error($c3);
! 60: var_dump($m);
! 61: }
! 62:
! 63: // Verify that passing no connection doesn't affect future calls
! 64:
! 65: $m = oci_error();
! 66: echo "No connection: error: ";
! 67: var_dump($m);
! 68:
! 69: // Check the errors are still accessible in the respective handles
! 70:
! 71: $m = oci_error($c1);
! 72: echo "Normal connection (take #2): Parse error: ";
! 73: echo $m["message"], "\n";
! 74:
! 75: $m = oci_error($c2);
! 76: echo "New connection (take #2): Parse error: ";
! 77: echo $m["message"], "\n";
! 78:
! 79: $m = oci_error($c3);
! 80: echo "Persistent connection (take #2): Parse error: ";
! 81: echo $m["message"], "\n";
! 82:
! 83: // Now create a new error for a normal connection and check all again
! 84:
! 85: $s = @oci_new_collection($c1, "ABC");
! 86: $m = oci_error($c1);
! 87: echo "Normal connection: New Collection error: ";
! 88: echo $m["message"], "\n";
! 89:
! 90: $m = oci_error($c2);
! 91: echo "New connection (take #3): Parse error: ";
! 92: echo $m["message"], "\n";
! 93:
! 94: $m = oci_error($c3);
! 95: echo "Persistent connection (take #3): Parse error: ";
! 96: echo $m["message"], "\n";
! 97:
! 98: echo "Done\n";
! 99:
! 100: ?>
! 101: --EXPECTF--
! 102: Normal connection: Parse error
! 103: array(4) {
! 104: ["code"]=>
! 105: int(1756)
! 106: ["message"]=>
! 107: string(48) "ORA-01756: %s"
! 108: ["offset"]=>
! 109: int(0)
! 110: ["sqltext"]=>
! 111: string(0) ""
! 112: }
! 113: New connection: Parse error
! 114: array(4) {
! 115: ["code"]=>
! 116: int(1756)
! 117: ["message"]=>
! 118: string(48) "ORA-01756: %s"
! 119: ["offset"]=>
! 120: int(0)
! 121: ["sqltext"]=>
! 122: string(0) ""
! 123: }
! 124: Persistent connection: Parse error
! 125: array(4) {
! 126: ["code"]=>
! 127: int(1756)
! 128: ["message"]=>
! 129: string(48) "ORA-01756: %s"
! 130: ["offset"]=>
! 131: int(0)
! 132: ["sqltext"]=>
! 133: string(0) ""
! 134: }
! 135: No connection: error: bool(false)
! 136: Normal connection (take #2): Parse error: ORA-01756: %s
! 137: New connection (take #2): Parse error: ORA-01756: %s
! 138: Persistent connection (take #2): Parse error: ORA-01756: %s
! 139: Normal connection: New Collection error: OCI-22303: type ""."ABC" not found
! 140: New connection (take #3): Parse error: ORA-01756: %s
! 141: Persistent connection (take #3): Parse error: ORA-01756: %s
! 142: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>