Annotation of embedaddon/php/ext/oci8/tests/oci_execute_segfault.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: oci_execute() segfault after repeated bind of LOB descriptor
! 3: --SKIPIF--
! 4: <?php
! 5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 6: require(dirname(__FILE__).'/skipif.inc');
! 7: ?>
! 8: --FILE--
! 9: <?php
! 10:
! 11: require dirname(__FILE__).'/connect.inc';
! 12: require dirname(__FILE__).'/create_table.inc';
! 13:
! 14: $ora_sql = "INSERT INTO
! 15: ".$schema.$table_name." (blob, clob)
! 16: VALUES (empty_blob(), empty_clob())
! 17: RETURNING
! 18: blob
! 19: INTO :v_blob ";
! 20:
! 21: $s = oci_parse($c, $ora_sql);
! 22: $blob = oci_new_descriptor($c, OCI_D_LOB);
! 23: oci_bind_by_name($s, ":v_blob", $blob, -1, OCI_B_BLOB);
! 24: oci_execute($s, OCI_DEFAULT);
! 25: var_dump($blob->save("some binary data"));
! 26:
! 27: oci_bind_by_name($s, ":v_blob", $blob, -1, OCI_B_BLOB);
! 28: oci_execute($s, OCI_DEFAULT);
! 29: var_dump($blob->save("some more binary data"));
! 30:
! 31: $query = 'SELECT blob, DBMS_LOB.GETLENGTH(blob) FROM '.$schema.$table_name.' ORDER BY 2';
! 32:
! 33: $s = oci_parse ($c, $query);
! 34: oci_execute($s, OCI_DEFAULT);
! 35:
! 36: while ($arr = oci_fetch_assoc($s)) {
! 37: $result = $arr['BLOB']->load();
! 38: var_dump($result);
! 39: }
! 40:
! 41: require dirname(__FILE__).'/drop_table.inc';
! 42:
! 43: echo "Done\n";
! 44:
! 45: ?>
! 46: --EXPECT--
! 47: bool(true)
! 48: bool(true)
! 49: string(16) "some binary data"
! 50: string(21) "some more binary data"
! 51: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>