05large_object.phpt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. --TEST--
  2. PostgreSQL large object
  3. --SKIPIF--
  4. <?php include("skipif.inc"); ?>
  5. --FILE--
  6. <?php
  7. include('config.inc');
  8. $db = pg_connect($conn_str);
  9. echo "create/write/close LO\n";
  10. pg_exec ($db, "begin");
  11. $oid = pg_lo_create ($db);
  12. if (!$oid) echo ("pg_lo_create() error\n");
  13. $handle = pg_lo_open ($db, $oid, "w");
  14. if (!$handle) echo ("pg_lo_open() error\n");
  15. pg_lo_write ($handle, "large object data\n");
  16. pg_lo_close ($handle);
  17. pg_exec ($db, "commit");
  18. echo "open/read/tell/seek/close LO\n";
  19. pg_exec ($db, "begin");
  20. $handle = pg_lo_open ($db, $oid, "w");
  21. pg_lo_read($handle, 100);
  22. pg_lo_tell($handle);
  23. pg_lo_seek($handle, 2);
  24. pg_lo_close($handle);
  25. pg_exec ($db, "commit");
  26. echo "open/read_all/close LO\n";
  27. pg_exec ($db, "begin");
  28. $handle = pg_lo_open ($db, $oid, "w");
  29. pg_lo_read_all($handle);
  30. if (pg_last_error()) echo "pg_lo_read_all() error\n".pg_last_error();
  31. pg_lo_close($handle);
  32. pg_exec ($db, "commit");
  33. echo "unlink LO\n";
  34. pg_exec ($db, "begin");
  35. pg_lo_unlink($db, $oid) or print("pg_lo_unlink() error 1\n");
  36. pg_exec ($db, "commit");
  37. // more pg_lo_unlink() tests
  38. echo "Test without connection\n";
  39. pg_exec ($db, "begin");
  40. $oid = pg_lo_create ($db) or print("pg_lo_create() error\n");
  41. pg_lo_unlink($oid) or print("pg_lo_unlink() error 2\n");
  42. pg_exec ($db, "commit");
  43. echo "Test with string oid value\n";
  44. pg_exec ($db, "begin");
  45. $oid = pg_lo_create ($db) or print("pg_lo_create() error\n");
  46. pg_lo_unlink($db, (string)$oid) or print("pg_lo_unlink() error 3\n");
  47. pg_exec ($db, "commit");
  48. echo "import/export LO\n";
  49. $path = dirname(__FILE__) . '/';
  50. pg_query($db, 'begin');
  51. $oid = pg_lo_import($db, $path . 'php.gif');
  52. pg_query($db, 'commit');
  53. pg_query($db, 'begin');
  54. @unlink($path . 'php.gif.exported');
  55. pg_lo_export($oid, $path . 'php.gif.exported', $db);
  56. if (!file_exists($path . 'php.gif.exported')) {
  57. echo "Export failed\n";
  58. }
  59. @unlink($path . 'php.gif.exported');
  60. pg_query($db, 'commit');
  61. echo "OK";
  62. ?>
  63. --EXPECT--
  64. create/write/close LO
  65. open/read/tell/seek/close LO
  66. open/read_all/close LO
  67. large object data
  68. unlink LO
  69. Test without connection
  70. Test with string oid value
  71. import/export LO
  72. OK