• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • pg_lo_create()

    (PHP 4 >= 4.2.0, PHP 5, PHP 7)

    新建一个大型对象

    说明

    pg_lo_create(resource $connection): int

    pg_lo_create()新建一个大型对象并返回该大型对象的oid$connection指定了由pg_connect()或pg_pconnect()打开的有效的数据库连接号。不支持 PostgreSQL 访问模式 INV_READ,INV_WRITE 和 INV_ARCHIVE,该对象总是以读写方式访问。INV_ARCHIVE 已经从 PostgreSQL 中删除了(6.3 及以上版本)。本函数返回大型对象的 oid,如果出错则返回FALSE

    要使用大型对象(lo)接口,需要将其放置在事务块中。

    Note:

    本函数以前的名字为pg_locreate()

    <?php
    // --------- OPEN CONN ---
      $conn = pg_connect("host='127.0.0.1' dbname='test' user='usertest' password='passtest'");
    // --------- OPEN FILE ---
      $fp = fopen('logo.gif', "r");
      $buffer = fread($fp, filesize('logo.gif'));
      fclose($fp);
    // --------- CREATE - INSERT OID ---
      pg_exec($conn, "begin");
      $oid = pg_locreate($conn);
      $rs = pg_exec($conn,"INSERT INTO test(tipo, images) VALUES('A1', $oid);");
      $handle = pg_loopen ($conn, $oid, "w");
      pg_lowrite ($handle, $buffer);
      pg_loclose ($handle);
      pg_exec($conn, "commit");
    // --------- OPEN - INSERT OID ---
      $rs = pg_exec($conn, "SELECT images FROM test WHERE tipo = 'A1';");
      $row = pg_fetch_row($rs, 0);
      pg_exec($conn, "begin");
      $loid = pg_loopen($conn, $row[0], "r");
      header("Content-type: image/gif");
      pg_loreadall($loid);
      pg_loclose($loid);
      pg_exec ($conn, "commit");
    // --------- UNLINK OID ---
      pg_exec($conn, "begin");
      $loid = $row[0];
      pg_lounlink($conn, $loid);
      pg_exec ($conn, "commit");
    // --------- DELETE OID ---
      pg_exec($conn, "DELETE FROM test WHERE tipo = 'A1';");
    // --------- CLOSE CONN ---
      pg_close();
    ?>
    

    上篇:pg_lo_close()

    下篇:pg_lo_export()