Annotation of embedaddon/php/ext/oci8/tests/bug51291_1.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #51291 (oci_error() doesn't report last error when called two times)
                      3: --SKIPIF--
                      4: <?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
                      5: --FILE--
                      6: <?php
                      7: 
                      8: require(dirname(__FILE__).'/connect.inc');
                      9: 
                     10: echo "Test 1 - Parse\n";
                     11: 
                     12: $s = @oci_parse($c, "select ' from dual");
                     13: if (!$s) {
                     14:     var_dump(oci_error($c));
                     15:     echo "2nd call\n";
                     16:     var_dump(oci_error($c));
                     17: }
                     18: 
                     19: echo "\nTest 2 - Parse\n";
                     20: 
                     21: $s = @oci_parse($c, "select ' from dual");
                     22: if (!$s) {
                     23:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     24:     echo "2nd call\n";
                     25:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     26: }
                     27: 
                     28: echo "\nTest 3 - Execute\n";
                     29: 
                     30: $s = @oci_parse($c, 'select doesnotexist from dual');
                     31: $r = @oci_execute($s, OCI_DEFAULT);
                     32: if (!$r) { 
                     33:     var_dump(oci_error($s));
                     34:     echo "2nd call\n";
                     35:     var_dump(oci_error($s));
                     36: }
                     37: 
                     38: echo "\nTest 4 - Execute - consecutive oci_error calls of different kinds\n";
                     39: 
                     40: $s = @oci_parse($c, 'select doesnotexist from dual');
                     41: $r = @oci_execute($s, OCI_DEFAULT);
                     42: if (!$r) { 
                     43:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     44:     echo "2nd call\n";
                     45:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     46: }
                     47: 
                     48: 
                     49: echo "\nTest 5 - Execute - after oci_rollback\n";
                     50: 
                     51: $s = @oci_parse($c, 'select doesnotexist from dual');
                     52: $r = @oci_execute($s, OCI_DEFAULT);
                     53: if (!$r) { 
                     54:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     55:     $r = oci_rollback($c);
                     56:     echo "Rollback status is ";
                     57:     if (is_null($r)) echo "null";
                     58:     else if ($r === false) echo "false";
                     59:     else if ($r === true) echo "true";
                     60:     else echo $r;
                     61:     echo "\n";
                     62:     echo "2nd call after oci_rollback\n";
                     63:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     64: }
                     65: 
                     66: 
                     67: echo "\nTest 6 - Execute - after successful 2nd query with new handle\n";
                     68: 
                     69: $s = @oci_parse($c, 'select doesnotexist from dual');
                     70: $r = @oci_execute($s, OCI_DEFAULT);
                     71: if (!$r) { 
                     72:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     73:     $s2 = oci_parse($c, 'select 1 from dual');
                     74:     $r = oci_execute($s2, OCI_DEFAULT);
                     75:     echo "Execute status is ";
                     76:     if (is_null($r)) echo "null";
                     77:     else if ($r === false) echo "false";
                     78:     else if ($r === true) echo "true";
                     79:     else echo $r;
                     80:     echo "\n";
                     81:     echo "2nd call after successful execute\n";
                     82:     var_dump(oci_error(), oci_error($c), oci_error($s), oci_error($s2));
                     83: }
                     84: 
                     85: 
                     86: echo "\nTest 7 - Execute - after successful 2nd query with same handle\n";
                     87: 
                     88: $s = @oci_parse($c, 'select doesnotexist from dual');
                     89: $r = @oci_execute($s, OCI_DEFAULT);
                     90: if (!$r) { 
                     91:     var_dump(oci_error(), oci_error($c), oci_error($s));
                     92:     $s = oci_parse($c, 'select 1 from dual');
                     93:     $r = oci_execute($s, OCI_DEFAULT);
                     94:     echo "Execute status is ";
                     95:     if (is_null($r)) echo "null";
                     96:     else if ($r === false) echo "false";
                     97:     else if ($r === true) echo "true";
                     98:     else echo $r;
                     99:     echo "\n";
                    100:     echo "2nd call after successful execute\n";
                    101:     var_dump(oci_error(), oci_error($c), oci_error($s));
                    102: }
                    103: 
                    104: 
                    105: echo "\nTest 8 - Execute - after unsuccessful 2nd query with new handle\n";
                    106: 
                    107: $s = @oci_parse($c, 'select doesnotexist from dual');
                    108: $r = @oci_execute($s, OCI_DEFAULT);
                    109: if (!$r) { 
                    110:     var_dump(oci_error(), oci_error($c), oci_error($s));
                    111:     $s2 = oci_parse($c, 'select reallynothere from dual');
                    112:     $r = oci_execute($s2, OCI_DEFAULT);
                    113:     echo "Execute status is ";
                    114:     if (is_null($r)) echo "null";
                    115:     else if ($r === false) echo "false";
                    116:     else if ($r === true) echo "true";
                    117:     else echo $r;
                    118:     echo "\n";
                    119:     echo "2nd call after unsuccessful execute\n";
                    120:     var_dump(oci_error(), oci_error($c), oci_error($s), oci_error($s2));
                    121: }
                    122: 
                    123: echo "\nTest 9 - Execute - after unsuccessful 2nd query with same handle\n";
                    124: 
                    125: $s = @oci_parse($c, 'select doesnotexist from dual');
                    126: $r = @oci_execute($s, OCI_DEFAULT);
                    127: if (!$r) { 
                    128:     var_dump(oci_error(), oci_error($c), oci_error($s));
                    129:     $s = oci_parse($c, 'select reallynothere from dual');
                    130:     $r = oci_execute($s, OCI_DEFAULT);
                    131:     echo "Execute status is ";
                    132:     if (is_null($r)) echo "null";
                    133:     else if ($r === false) echo "false";
                    134:     else if ($r === true) echo "true";
                    135:     else echo $r;
                    136:     echo "\n";
                    137:     echo "2nd call after unsuccessful execute\n";
                    138:     var_dump(oci_error(), oci_error($c), oci_error($s));
                    139: }
                    140: 
                    141: ?>
                    142: ===DONE===
                    143: <?php exit(0); ?>
                    144: --EXPECTF--
                    145: Test 1 - Parse
                    146: array(4) {
                    147:   ["code"]=>
                    148:   int(1756)
                    149:   ["message"]=>
                    150:   string(48) "ORA-01756: %s"
                    151:   ["offset"]=>
                    152:   int(0)
                    153:   ["sqltext"]=>
                    154:   string(0) ""
                    155: }
                    156: 2nd call
                    157: array(4) {
                    158:   ["code"]=>
                    159:   int(1756)
                    160:   ["message"]=>
                    161:   string(48) "ORA-01756: %s"
                    162:   ["offset"]=>
                    163:   int(0)
                    164:   ["sqltext"]=>
                    165:   string(0) ""
                    166: }
                    167: 
                    168: Test 2 - Parse
                    169: 
                    170: Warning: oci_error() expects parameter 1 to be resource, boolean given in %sbug51291_1.php on line %d
                    171: bool(false)
                    172: array(4) {
                    173:   ["code"]=>
                    174:   int(1756)
                    175:   ["message"]=>
                    176:   string(48) "ORA-01756: %s"
                    177:   ["offset"]=>
                    178:   int(0)
                    179:   ["sqltext"]=>
                    180:   string(0) ""
                    181: }
                    182: NULL
                    183: 2nd call
                    184: 
                    185: Warning: oci_error() expects parameter 1 to be resource, boolean given in %sbug51291_1.php on line %d
                    186: bool(false)
                    187: array(4) {
                    188:   ["code"]=>
                    189:   int(1756)
                    190:   ["message"]=>
                    191:   string(48) "ORA-01756: %s"
                    192:   ["offset"]=>
                    193:   int(0)
                    194:   ["sqltext"]=>
                    195:   string(0) ""
                    196: }
                    197: NULL
                    198: 
                    199: Test 3 - Execute
                    200: array(4) {
                    201:   ["code"]=>
                    202:   int(904)
                    203:   ["message"]=>
                    204:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    205:   ["offset"]=>
                    206:   int(%d)
                    207:   ["sqltext"]=>
                    208:   string(29) "select doesnotexist from dual"
                    209: }
                    210: 2nd call
                    211: array(4) {
                    212:   ["code"]=>
                    213:   int(904)
                    214:   ["message"]=>
                    215:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    216:   ["offset"]=>
                    217:   int(%d)
                    218:   ["sqltext"]=>
                    219:   string(29) "select doesnotexist from dual"
                    220: }
                    221: 
                    222: Test 4 - Execute - consecutive oci_error calls of different kinds
                    223: bool(false)
                    224: bool(false)
                    225: array(4) {
                    226:   ["code"]=>
                    227:   int(904)
                    228:   ["message"]=>
                    229:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    230:   ["offset"]=>
                    231:   int(%d)
                    232:   ["sqltext"]=>
                    233:   string(29) "select doesnotexist from dual"
                    234: }
                    235: 2nd call
                    236: bool(false)
                    237: bool(false)
                    238: array(4) {
                    239:   ["code"]=>
                    240:   int(904)
                    241:   ["message"]=>
                    242:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    243:   ["offset"]=>
                    244:   int(%d)
                    245:   ["sqltext"]=>
                    246:   string(29) "select doesnotexist from dual"
                    247: }
                    248: 
                    249: Test 5 - Execute - after oci_rollback
                    250: bool(false)
                    251: bool(false)
                    252: array(4) {
                    253:   ["code"]=>
                    254:   int(904)
                    255:   ["message"]=>
                    256:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    257:   ["offset"]=>
                    258:   int(%d)
                    259:   ["sqltext"]=>
                    260:   string(29) "select doesnotexist from dual"
                    261: }
                    262: Rollback status is true
                    263: 2nd call after oci_rollback
                    264: bool(false)
                    265: bool(false)
                    266: array(4) {
                    267:   ["code"]=>
                    268:   int(904)
                    269:   ["message"]=>
                    270:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    271:   ["offset"]=>
                    272:   int(%d)
                    273:   ["sqltext"]=>
                    274:   string(29) "select doesnotexist from dual"
                    275: }
                    276: 
                    277: Test 6 - Execute - after successful 2nd query with new handle
                    278: bool(false)
                    279: bool(false)
                    280: array(4) {
                    281:   ["code"]=>
                    282:   int(904)
                    283:   ["message"]=>
                    284:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    285:   ["offset"]=>
                    286:   int(%d)
                    287:   ["sqltext"]=>
                    288:   string(29) "select doesnotexist from dual"
                    289: }
                    290: Execute status is true
                    291: 2nd call after successful execute
                    292: bool(false)
                    293: bool(false)
                    294: array(4) {
                    295:   ["code"]=>
                    296:   int(904)
                    297:   ["message"]=>
                    298:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    299:   ["offset"]=>
                    300:   int(%d)
                    301:   ["sqltext"]=>
                    302:   string(29) "select doesnotexist from dual"
                    303: }
                    304: bool(false)
                    305: 
                    306: Test 7 - Execute - after successful 2nd query with same handle
                    307: bool(false)
                    308: bool(false)
                    309: array(4) {
                    310:   ["code"]=>
                    311:   int(904)
                    312:   ["message"]=>
                    313:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    314:   ["offset"]=>
                    315:   int(%d)
                    316:   ["sqltext"]=>
                    317:   string(29) "select doesnotexist from dual"
                    318: }
                    319: Execute status is true
                    320: 2nd call after successful execute
                    321: bool(false)
                    322: bool(false)
                    323: bool(false)
                    324: 
                    325: Test 8 - Execute - after unsuccessful 2nd query with new handle
                    326: bool(false)
                    327: bool(false)
                    328: array(4) {
                    329:   ["code"]=>
                    330:   int(904)
                    331:   ["message"]=>
                    332:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    333:   ["offset"]=>
                    334:   int(%d)
                    335:   ["sqltext"]=>
                    336:   string(29) "select doesnotexist from dual"
                    337: }
                    338: 
                    339: Warning: oci_execute(): ORA-00904: %sREALLYNOTHERE%s in %sbug51291_1.php on line %d
                    340: Execute status is false
                    341: 2nd call after unsuccessful execute
                    342: bool(false)
                    343: bool(false)
                    344: array(4) {
                    345:   ["code"]=>
                    346:   int(904)
                    347:   ["message"]=>
                    348:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    349:   ["offset"]=>
                    350:   int(%d)
                    351:   ["sqltext"]=>
                    352:   string(29) "select doesnotexist from dual"
                    353: }
                    354: array(4) {
                    355:   ["code"]=>
                    356:   int(904)
                    357:   ["message"]=>
                    358:   string(%d) "ORA-00904%sREALLYNOTHERE%s"
                    359:   ["offset"]=>
                    360:   int(%d)
                    361:   ["sqltext"]=>
                    362:   string(30) "select reallynothere from dual"
                    363: }
                    364: 
                    365: Test 9 - Execute - after unsuccessful 2nd query with same handle
                    366: bool(false)
                    367: bool(false)
                    368: array(4) {
                    369:   ["code"]=>
                    370:   int(904)
                    371:   ["message"]=>
                    372:   string(%d) "ORA-00904:%sDOESNOTEXIST%s"
                    373:   ["offset"]=>
                    374:   int(%d)
                    375:   ["sqltext"]=>
                    376:   string(29) "select doesnotexist from dual"
                    377: }
                    378: 
                    379: Warning: oci_execute(): ORA-00904: %sREALLYNOTHERE%s in %sbug51291_1.php on line %d
                    380: Execute status is false
                    381: 2nd call after unsuccessful execute
                    382: bool(false)
                    383: bool(false)
                    384: array(4) {
                    385:   ["code"]=>
                    386:   int(904)
                    387:   ["message"]=>
                    388:   string(%d) "ORA-00904%sREALLYNOTHERE%s"
                    389:   ["offset"]=>
                    390:   int(%d)
                    391:   ["sqltext"]=>
                    392:   string(30) "select reallynothere from dual"
                    393: }
                    394: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>