xref: /PHP-8.1/ext/oci8/tests/connect_scope2.phpt (revision 74859783)
1--TEST--
2Test oci_pconnect end-of-scope when statement returned
3--EXTENSIONS--
4oci8
5--FILE--
6<?php
7
8require(__DIR__.'/details.inc');
9
10// Initialization
11
12$stmtarray = array(
13    "drop table connect_scope2_tab",
14    "create table connect_scope2_tab (c1 number)",
15);
16
17if (!empty($dbase))
18    $c1 = oci_new_connect($user,$password,$dbase);
19else
20    $c1 = oci_new_connect($user,$password);
21
22oci8_test_sql_execute($c1, $stmtarray);
23
24// Run Test
25
26echo "Test 1 - oci_pconnect\n";
27
28function f()
29{
30    global $user, $password, $dbase;
31
32    if (!empty($dbase))
33        $c = oci_pconnect($user,$password,$dbase);
34    else
35        $c = oci_pconnect($user,$password);
36    $s = oci_parse($c, "insert into connect_scope2_tab values (1)");
37    oci_execute($s, OCI_DEFAULT);  // no commit
38    return($s); // this keeps the connection refcount positive so the connection isn't closed
39}
40
41$s2 = f();
42
43// Check nothing committed yet
44
45$s1 = oci_parse($c1, "select * from connect_scope2_tab");
46oci_execute($s1, OCI_DEFAULT);
47oci_fetch_all($s1, $r);
48var_dump($r);
49
50// insert 2nd row on returned statement, committing both rows
51oci_execute($s2);
52
53// Verify data was committed
54
55$s1 = oci_parse($c1, "select * from connect_scope2_tab");
56oci_execute($s1);
57oci_fetch_all($s1, $r);
58var_dump($r);
59
60// Cleanup
61
62$stmtarray = array(
63    "drop table connect_scope2_tab"
64);
65
66oci8_test_sql_execute($c1, $stmtarray);
67
68echo "Done\n";
69
70?>
71--EXPECT--
72Test 1 - oci_pconnect
73array(1) {
74  ["C1"]=>
75  array(0) {
76  }
77}
78array(1) {
79  ["C1"]=>
80  array(2) {
81    [0]=>
82    string(1) "1"
83    [1]=>
84    string(1) "1"
85  }
86}
87Done
88