xref: /PHP-8.0/ext/oci8/tests/drcp_scope4.phpt (revision f8d79582)
1--TEST--
2DRCP: oci_pconnect() with scope end when oci8.old_oci_close_semantics OFF
3--SKIPIF--
4<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
5--INI--
6oci8.old_oci_close_semantics=0
7--FILE--
8<?php
9
10require __DIR__."/drcp_functions.inc";
11require __DIR__."/details.inc";
12
13// The default expected behavior of this test is different between PHP
14// 5.2 and PHP 5.3
15//
16// In PHP 5.3, the test opens a connection within function1 and
17// updates a table (without committing).  Another connection is opened
18// from function 2, and the table queried.  When function1 ends, the
19// txn is rolled back and hence the updated value will not be
20// reflected in function2.  Use oci8.old_oci_close_semantics=1 to
21// get old behavior
22
23// Create the table
24$c = oci_new_connect($user,$password,$dbase);
25@drcp_drop_table($c);
26drcp_create_table($c);
27
28echo "This is with a OCI_PCONNECT\n";
29function1($user,$password,$dbase);
30
31// Should return the OLD value
32function2($user,$password,$dbase);
33
34// This is the first scope for the script
35
36function function1($user,$password,$dbase)
37{
38    var_dump($c = oci_pconnect($user,$password,$dbase));
39    drcp_update_table($c);
40}
41
42// This is the second scope
43
44function function2($user,$password,$dbase)
45{
46    var_dump($c = oci_pconnect($user,$password,$dbase));
47    drcp_select_value($c);
48}
49
50drcp_drop_table($c);
51oci_close($c);
52
53echo "Done\n";
54
55?>
56--EXPECTF--
57This is with a OCI_PCONNECT
58resource(%d) of type (oci8 persistent connection)
59Update done-- DEPT value has been set to NEWDEPT
60resource(%d) of type (oci8 persistent connection)
61The value of DEPT for id 105 is HR
62Done
63