1--TEST-- 2Test oci_define_by_name types 3--EXTENSIONS-- 4oci8 5--SKIPIF-- 6<?php 7require_once 'skipifconnectfailure.inc'; 8$target_dbs = array('oracledb' => true, 'timesten' => false); // test runs on these DBs 9require __DIR__.'/skipif.inc'; 10?> 11--FILE-- 12<?php 13 14require __DIR__.'/connect.inc'; 15 16$stmtarray = array( 17 "drop table phptestrawtable", 18 "create table phptestrawtable( id number(10), fileimage raw(1000))" 19); 20 21oci8_test_sql_execute($c, $stmtarray); 22 23$stmt = oci_parse ($c, "insert into phptestrawtable (id, fileimage) values (:id, :fileimage)"); 24$i=1; 25$fileimage = file_get_contents( __DIR__."/test.gif"); 26$fileimage = substr($fileimage, 0, 300); 27var_dump(md5($fileimage)); 28 29oci_bind_by_name( $stmt, ":id", $i, -1); 30oci_bind_by_name( $stmt, ":fileimage", $fileimage, -1, SQLT_BIN); 31oci_execute($stmt, OCI_DEFAULT); 32oci_commit($c); 33 34echo "Test 1\n"; 35$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable"); 36var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $fi)); 37oci_execute($stmt); 38 39while (oci_fetch($stmt)) { 40 var_dump($fi); 41 echo "file md5:" . md5($fi) . "\n"; 42} 43 44echo "Test 2\n"; 45$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable"); 46var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $fi)); 47oci_execute($stmt); 48 49while (oci_fetch($stmt)) { 50 var_dump($fi); 51 echo "file md5:" . md5($fi) . "\n"; 52} 53 54echo "Test 3 - test repeatability\n"; 55$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable"); 56var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $fi, SQLT_STR)); 57oci_execute($stmt); 58 59while (oci_fetch($stmt)) { 60 var_dump($fi); 61 echo "file md5:" . md5($fi) . "\n"; 62} 63 64echo "Test 4 - wrong type\n"; 65$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable"); 66var_dump(oci_define_by_name($stmt, 'FILEIMAGE', $fi, SQLT_RSET)); 67oci_execute($stmt); 68 69while (oci_fetch($stmt)) { 70 var_dump($fi); 71 echo "file md5:" . md5($fi) . "\n"; 72} 73 74// Cleanup 75 76$stmtarray = array( 77 "drop table phptestrawtable" 78); 79 80oci8_test_sql_execute($c, $stmtarray); 81 82echo "Done\n"; 83?> 84--EXPECTF-- 85string(32) "88b274d7a257ac6f70435b83abd4e26e" 86Test 1 87bool(true) 88string(300) "GIF89%s" 89file md5:88b274d7a257ac6f70435b83abd4e26e 90Test 2 91bool(true) 92string(300) "GIF89%s" 93file md5:88b274d7a257ac6f70435b83abd4e26e 94Test 3 - test repeatability 95bool(true) 96string(600) "47494638396178004300E66A007F82B839374728252ACCCDE2A1A4CBD3D5E7B2B4D44342588386B98283B35252729092C2C2C4DEAAACD04C4B635B5C83DDDEEC3B383C6E71A56A6D9D61638D7579B17B7EB5E5E6F0999CC68C8DC1B9BAD96B6B924E4E6B7174A97A7AA3888BBD7274A37473988E90C15A5B7EE2E3EF7B7DADA4A5D06D70A27276AC9596C8BBBDD97478AE8588BB9295C3D8D9EA9292C46466926B6E9FA5A8CE9496C52E2B2F535168B3B4D76C6A8C5C5B768A8DBF666896686A9A9C9FC8312E39AEB0D39C9CCD5556789EA1CA9699C58182AF6769973F3D50BCBEDA5E60899899C88C8EBF898ABA57587CB6B7D7D5D7E8221E206C6F9ECED0E4BFC0DC777BB47678A75F5E7D9999CC6E6F987377AE221E1FFFFFFF908E8F595657C7C6C7EEEEF5D5D4D5F6F6" 97file md5:80bb3201e2a8bdcb8ab3e1a44a82bb8a 98Test 4 - wrong type 99bool(true) 100 101Warning: oci_fetch(): ORA-00932: inconsistent datatypes%s on line %d 102Done 103