Annotation of embedaddon/php/ext/pdo_oci/tests/pecl_bug_6364.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: PECL PDO_OCI Bug #6364 (segmentation fault on stored procedure call with OUT binds)
3: --SKIPIF--
4: <?php
5: if (!extension_loaded('pdo') || !extension_loaded('pdo_oci')) die('skip not loaded');
6: require(dirname(__FILE__).'/../../pdo/tests/pdo_test.inc');
7: PDOTest::skip();
8: ?>
9: --FILE--
10: <?php
11:
12: require dirname(__FILE__) . '/../../pdo/tests/pdo_test.inc';
13: $dbh = PDOTest::factory();
14:
15: @$dbh->exec ("drop table bug_6364_t");
16:
17: $dbh->exec ("create table bug_6364_t (c1 varchar2(10), c2 varchar2(10), c3 varchar2(10), c4 varchar2(10), c5 varchar2(10))");
18:
19: $dbh->exec ("create or replace procedure bug_6364_sp(p1 IN varchar2, p2 IN varchar2, p3 IN varchar2, p4 OUT varchar2, p5 OUT varchar2) as begin insert into bug_6364_t (c1, c2, c3) values (p1, p2, p3); p4 := 'val4'; p5 := 'val5'; end;");
20:
21: $stmt = $dbh->prepare("call bug_6364_sp('p1','p2','p3',?,?)");
22:
23: $out_param1 = "a";
24: $out_param2 = "a";
25:
26: $stmt->bindParam(1, $out_param1,PDO::PARAM_STR, 1024);
27: $stmt->bindParam(2, $out_param2,PDO::PARAM_STR, 1024);
28:
29: $stmt->execute() or die ("Execution error: " . var_dump($dbh->errorInfo()));
30:
31: var_dump($out_param1);
32: var_dump($out_param2);
33:
34: foreach ($dbh->query("select * from bug_6364_t") as $row) {
35: var_dump($row);
36: }
37:
38: print "Done\n";
39:
40: // Cleanup
41: $dbh->exec ("drop procedure bug_6364_sp");
42: $dbh->exec ("drop table bug_6364_t");
43:
44: ?>
45:
46: --EXPECTF--
47: string(4) "val4"
48: string(4) "val5"
49: array(10) {
50: ["c1"]=>
51: string(2) "p1"
52: [0]=>
53: string(2) "p1"
54: ["c2"]=>
55: string(2) "p2"
56: [1]=>
57: string(2) "p2"
58: ["c3"]=>
59: string(2) "p3"
60: [2]=>
61: string(2) "p3"
62: ["c4"]=>
63: NULL
64: [3]=>
65: NULL
66: ["c5"]=>
67: NULL
68: [4]=>
69: NULL
70: }
71: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>