Annotation of embedaddon/php/ext/oci8/tests/lob_029.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: reading/writing BFILE LOBs
! 3: --SKIPIF--
! 4: <?php
! 5: $target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs
! 6: require(dirname(__FILE__).'/skipif.inc');
! 7: ob_start();
! 8: phpinfo(INFO_MODULES);
! 9: $phpinfo = ob_get_clean();
! 10: if (preg_match('/Compile-time ORACLE_HOME/', $phpinfo) !== 1) {
! 11: // Assume building PHP with an ORACLE_HOME means the tested DB is on the same machine as PHP
! 12: die("skip this test won't work with remote Oracle");
! 13: }
! 14: if (substr(PHP_OS, 0, 3) == 'WIN') die("skip Test script not ported to Windows");
! 15: ?>
! 16: --FILE--
! 17: <?php
! 18:
! 19: require(dirname(__FILE__).'/connect.inc');
! 20:
! 21: $realdirname = "/tmp"; // Use /tmp because a local dir can give ORA-22288 depending on perms
! 22: $realfilename1 = "oci8bfiletest1.txt";
! 23: $fullname1 = $realdirname."/".$realfilename1;
! 24: $realfilename2 = "oci8bfiletest2.txt";
! 25: $fullname2 = $realdirname."/".$realfilename2;
! 26: $realfilename3 = "oci8bfiletest3.txt";
! 27: $fullname3 = $realdirname."/".$realfilename3;
! 28:
! 29: // Setup
! 30: $s = oci_parse($c, "drop table FileTest");
! 31: @oci_execute($s);
! 32:
! 33: $s = oci_parse($c, "drop directory TestDir");
! 34: @oci_execute($s);
! 35:
! 36: $s = oci_parse($c, "create directory TestDir as '$realdirname'");
! 37: oci_execute($s);
! 38:
! 39: file_put_contents($fullname1, 'Some text in the bfile 1');
! 40: file_put_contents($fullname2, 'Some text in the bfile 2');
! 41: file_put_contents($fullname3, 'Some text in the bfile 3');
! 42:
! 43: $s = oci_parse($c, "create table FileTest (FileNum number, FileDesc varchar2(30), Image bfile)");
! 44: oci_execute($s);
! 45:
! 46: $s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (1, 'Description 1', bfilename('TESTDIR', '$realfilename1'))");
! 47: oci_execute($s);
! 48:
! 49: $s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (2, 'Description 2', bfilename('TESTDIR', '$realfilename2'))");
! 50: oci_execute($s);
! 51:
! 52: $s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (3, 'Description 3', bfilename('TESTDIR', '$realfilename3'))");
! 53: oci_execute($s);
! 54:
! 55: // Run tests
! 56:
! 57: echo "Test 1. Check how many rows in the table\n";
! 58:
! 59: $s = oci_parse($c, "select count(*) numrows from FileTest");
! 60: oci_execute($s);
! 61: oci_fetch_all($s, $res);
! 62: var_dump($res);
! 63:
! 64: echo "Test 2\n";
! 65: $s = oci_parse($c, "select * from FileTest order by FileNum");
! 66: oci_execute($s);
! 67: oci_fetch_all($s, $res);
! 68: var_dump($res);
! 69:
! 70: echo "Test 3\n";
! 71: $d = oci_new_descriptor($c, OCI_D_FILE);
! 72:
! 73: $s = oci_parse($c, "insert into FileTest (FileNum, FileDesc, Image) values (2, 'Description 2', bfilename('TESTDIR', '$realfilename1')) returning Image into :im");
! 74: oci_bind_by_name($s, ":im", $d, -1, OCI_B_BFILE);
! 75: oci_execute($s);
! 76:
! 77: $r = $d->read(40);
! 78: var_dump($r);
! 79:
! 80: unlink($fullname1);
! 81: unlink($fullname2);
! 82: unlink($fullname3);
! 83:
! 84: $s = oci_parse($c, "drop table FileTest");
! 85: oci_execute($s);
! 86:
! 87: $s = oci_parse($c, "drop directory TestDir");
! 88: oci_execute($s);
! 89:
! 90: echo "Done\n";
! 91: ?>
! 92: --EXPECTF--
! 93: Test 1. Check how many rows in the table
! 94: array(1) {
! 95: ["NUMROWS"]=>
! 96: array(1) {
! 97: [0]=>
! 98: string(1) "3"
! 99: }
! 100: }
! 101: Test 2
! 102: array(3) {
! 103: ["FILENUM"]=>
! 104: array(3) {
! 105: [0]=>
! 106: string(1) "1"
! 107: [1]=>
! 108: string(1) "2"
! 109: [2]=>
! 110: string(1) "3"
! 111: }
! 112: ["FILEDESC"]=>
! 113: array(3) {
! 114: [0]=>
! 115: string(13) "Description 1"
! 116: [1]=>
! 117: string(13) "Description 2"
! 118: [2]=>
! 119: string(13) "Description 3"
! 120: }
! 121: ["IMAGE"]=>
! 122: array(3) {
! 123: [0]=>
! 124: string(24) "Some text in the bfile 1"
! 125: [1]=>
! 126: string(24) "Some text in the bfile 2"
! 127: [2]=>
! 128: string(24) "Some text in the bfile 3"
! 129: }
! 130: }
! 131: Test 3
! 132: string(24) "Some text in the bfile 1"
! 133: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>