lob_017.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. --TEST--
  2. returning multiple lobs (using persistent connection)
  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. $c = oci_pconnect($user, $password, $dbase);
  14. $drop = "DROP table lob_test";
  15. $statement = oci_parse($c, $drop);
  16. @oci_execute($statement);
  17. $create = "CREATE table lob_test(lob_1 BLOB, lob_2 BLOB)";
  18. $statement = oci_parse($c, $create);
  19. oci_execute($statement);
  20. $init = "INSERT INTO lob_test VALUES(EMPTY_BLOB(), EMPTY_BLOB())";
  21. $statement = oci_parse($c, $init);
  22. oci_execute($statement);
  23. $select = "SELECT * FROM lob_test FOR UPDATE";
  24. $statement = oci_parse($c, $select);
  25. oci_execute($statement, OCI_DEFAULT);
  26. $row = oci_fetch_assoc($statement);
  27. $row['LOB_1']->write("first");
  28. $row['LOB_2']->write("second");
  29. unset($row);
  30. oci_commit($c);
  31. $select = "SELECT * FROM lob_test FOR UPDATE";
  32. $statement = oci_parse($c, $select);
  33. oci_execute($statement, OCI_DEFAULT);
  34. $row = oci_fetch_assoc($statement);
  35. var_dump($row);
  36. var_dump($row['LOB_1']->load());
  37. var_dump($row['LOB_2']->load());
  38. $drop = "DROP table lob_test";
  39. $statement = oci_parse($c, $drop);
  40. @oci_execute($statement);
  41. echo "Done\n";
  42. ?>
  43. --EXPECTF--
  44. array(2) {
  45. ["LOB_1"]=>
  46. object(OCILob)#%d (1) {
  47. ["descriptor"]=>
  48. resource(%d) of type (oci8 descriptor)
  49. }
  50. ["LOB_2"]=>
  51. object(OCILob)#%d (1) {
  52. ["descriptor"]=>
  53. resource(%d) of type (oci8 descriptor)
  54. }
  55. }
  56. string(5) "first"
  57. string(6) "second"
  58. Done