Annotation of embedaddon/php/ext/oci8/tests/define3.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test oci_define_by_name() 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:
! 13: $stmtarray = array(
! 14: "drop table phpdefblobtable",
! 15: "create table phpdefblobtable (id number(10), fileimage blob)"
! 16: );
! 17:
! 18: oci8_test_sql_execute($c, $stmtarray);
! 19:
! 20: // Load data
! 21: $stmt = oci_parse ($c, "insert into phpdefblobtable (id, fileimage) values (:id, empty_blob()) returning fileimage into :fileimage");
! 22: $fileimage = oci_new_descriptor($c,OCI_D_LOB);
! 23: oci_bind_by_name($stmt,":id",$id);
! 24: oci_bind_by_name($stmt,":fileimage",$fileimage,-1,OCI_B_BLOB);
! 25: $id = 1;
! 26: oci_execute($stmt, OCI_DEFAULT);
! 27: $fileimage->savefile(dirname(__FILE__)."/test.gif");
! 28: $data = $fileimage->load();
! 29: var_dump(md5($data)); // original md5
! 30: oci_commit($c);
! 31:
! 32: // New row with different data
! 33: $id = 2;
! 34: $data = strrev($data);
! 35: var_dump(md5($data));
! 36: oci_execute($stmt, OCI_DEFAULT);
! 37: $fileimage->save($data);
! 38: oci_commit($c);
! 39:
! 40: echo "Test 1\n";
! 41: $stmt = oci_parse($c, "SELECT fileimage FROM phpdefblobtable");
! 42: var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $f));
! 43: oci_execute($stmt);
! 44:
! 45: while (oci_fetch($stmt)) {
! 46: var_dump($f);
! 47: echo "file md5:" . md5($f->load()) . "\n";
! 48: }
! 49:
! 50: echo "Test 2\n";
! 51: $stmt = oci_parse($c, "SELECT fileimage FROM phpdefblobtable");
! 52: var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $outdata, SQLT_STR));
! 53: oci_execute($stmt);
! 54:
! 55: while (oci_fetch($stmt)) {
! 56: echo "file md5:" . md5($outdata) . "\n";
! 57: }
! 58:
! 59: echo "Test 3\n";
! 60: $stmt = oci_parse($c, "SELECT fileimage FROM phpdefblobtable");
! 61: var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $outdata, SQLT_BIN));
! 62: oci_execute($stmt);
! 63:
! 64: while (oci_fetch($stmt)) {
! 65: echo "file md5:" . md5($outdata) . "\n";
! 66: }
! 67:
! 68: echo "Test 4\n";
! 69: $fid = oci_new_descriptor($c,OCI_D_LOB);
! 70: $stmt = oci_parse($c, "SELECT fileimage FROM phpdefblobtable");
! 71: var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $fid));
! 72: oci_execute($stmt);
! 73:
! 74: while (oci_fetch($stmt)) {
! 75: echo "file md5:" . md5($fid->load()) . "\n";
! 76: }
! 77:
! 78: $stmtarray = array(
! 79: "drop table phpdefblobtable"
! 80: );
! 81:
! 82: oci8_test_sql_execute($c, $stmtarray);
! 83:
! 84: echo "Done\n";
! 85:
! 86: ?>
! 87: --EXPECTF--
! 88: string(32) "614fcbba1effb7caa27ef0ef25c27fcf"
! 89: string(32) "06d4f219d946c74d748d43932cd9dcb2"
! 90: Test 1
! 91: bool(true)
! 92: object(OCI-Lob)#%d (1) {
! 93: ["descriptor"]=>
! 94: resource(%d) of type (oci8 descriptor)
! 95: }
! 96: file md5:614fcbba1effb7caa27ef0ef25c27fcf
! 97: object(OCI-Lob)#%d (1) {
! 98: ["descriptor"]=>
! 99: resource(%d) of type (oci8 descriptor)
! 100: }
! 101: file md5:06d4f219d946c74d748d43932cd9dcb2
! 102: Test 2
! 103: bool(true)
! 104:
! 105: Warning: oci_fetch(): ORA-00932: %s on line %d
! 106: Test 3
! 107: bool(true)
! 108: file md5:614fcbba1effb7caa27ef0ef25c27fcf
! 109: file md5:06d4f219d946c74d748d43932cd9dcb2
! 110: Test 4
! 111: bool(true)
! 112: file md5:614fcbba1effb7caa27ef0ef25c27fcf
! 113: file md5:06d4f219d946c74d748d43932cd9dcb2
! 114: Done
! 115:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>