define2.phpt 2.9 KB

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