Annotation of embedaddon/php/ext/oci8/tests/connect_scope_try3.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Check oci_new_connect try/catch end-of-scope with old_oci_close_semantics Off
        !             3: --SKIPIF--
        !             4: <?php if (!extension_loaded('oci8')) die ("skip no oci8 extension"); ?>
        !             5: --INI--
        !             6: oci8.old_oci_close_semantics=0
        !             7: --FILE--
        !             8: <?php
        !             9: 
        !            10: require(dirname(__FILE__).'/details.inc');
        !            11: 
        !            12: // Initialization
        !            13: 
        !            14: $stmtarray = array(
        !            15:        "drop table scope_try3_tab",
        !            16:        "create table scope_try3_tab (c1 number)"
        !            17: );
        !            18: 
        !            19: if (!empty($dbase))
        !            20:        $c1 = oci_new_connect($user,$password,$dbase);
        !            21: else
        !            22:        $c1 = oci_new_connect($user,$password);
        !            23:                                                 
        !            24: oci8_test_sql_execute($c1, $stmtarray);
        !            25: 
        !            26: // Run Test
        !            27: 
        !            28: echo "Test 1\n";
        !            29: 
        !            30: // Make errors throw exceptions
        !            31: 
        !            32: set_error_handler(create_function('$x, $y', 'throw new Exception($y, $x);'));
        !            33: 
        !            34: try
        !            35: {
        !            36:        if (!empty($dbase))
        !            37:                $c = oci_new_connect($user,$password,$dbase);
        !            38:        else
        !            39:                $c = oci_new_connect($user,$password);
        !            40:        $s = oci_parse($c, "insert into scope_try3_tab values (1)");
        !            41:        oci_execute($s, OCI_DEFAULT);  // no commit
        !            42:        $s = oci_parse($c, "insert into scope_try3_tab values (ABC)"); // syntax error -> throws exception
        !            43:        oci_execute($s, OCI_DEFAULT);  // no commit
        !            44: }
        !            45: catch (Exception $e)
        !            46: {
        !            47:        echo "Caught Exception: ". $e->getMessage(), "\n";
        !            48:        var_dump($c);
        !            49: 
        !            50:        // Verify data is not yet committed
        !            51:        $s1 = oci_parse($c1, "select * from scope_try3_tab");
        !            52:        oci_execute($s1);
        !            53:        oci_fetch_all($s1, $r);
        !            54:        var_dump($r);
        !            55: 
        !            56:        // Now commit
        !            57:        oci_commit($c);
        !            58: }
        !            59: 
        !            60: // Verify data was committed in the Catch block
        !            61: 
        !            62: $s1 = oci_parse($c1, "select * from scope_try3_tab");
        !            63: oci_execute($s1);
        !            64: oci_fetch_all($s1, $r);
        !            65: var_dump($r);
        !            66: 
        !            67: // Cleanup
        !            68: 
        !            69: $stmtarray = array(
        !            70:        "drop table scope_try3_tab"
        !            71: );
        !            72: 
        !            73: oci8_test_sql_execute($c1, $stmtarray);
        !            74: 
        !            75: echo "Done\n";
        !            76: 
        !            77: ?>
        !            78: --EXPECTF--
        !            79: Test 1
        !            80: Caught Exception: oci_execute(): ORA-%r(00984|57000: TT2957)%r: %s
        !            81: resource(%d) of type (oci8 connection)
        !            82: array(1) {
        !            83:   ["C1"]=>
        !            84:   array(0) {
        !            85:   }
        !            86: }
        !            87: array(1) {
        !            88:   ["C1"]=>
        !            89:   array(1) {
        !            90:     [0]=>
        !            91:     string(1) "1"
        !            92:   }
        !            93: }
        !            94: Done

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