Abre un flujo sobre un objeto grande existente

# Pdo\Pgsql::lobOpen

(PHP 8 >= 8.4.0)

Pdo\Pgsql::lobOpen — Abre un flujo sobre un objeto grande existente

### Descripción

public function Pdo\Pgsql::lobOpen(string `$oid`, string `$mode` = "rb"): resource|false

Pdo\Pgsql::lobOpen() abre un flujo para acceder a los datos referenciados por `oid`. Todas las funciones habituales del sistema de ficheros, tales como fread(), fwrite() o fgets() pueden ser utilizadas para manipular el contenido del flujo.

> Nota: Esta función, y todas las manipulaciones del objeto grande, deben ser llamadas y realizadas dentro de una transacción.

### Parámetros

`oid`
  Un identificador de objeto grande.
`mode`
  El modo de acceso. Si `mode` contiene `w` o `+`, el flujo se abre para lectura y escritura; en caso contrario, se abre solo para lectura. Un indicador `b` (binario) no tiene efecto. El valor predeterminado `"rb"` abre el flujo para lectura.

### Valores devueltos

Devuelve un recurso de flujo en caso de éxito, o `false` si ocurre un error

### Ejemplos

Ejemplo #1 Ejemplo de Pdo\Pgsql::lobOpen()

Según el ejemplo de Pdo\Pgsql::lobCreate(), este código extrae el objeto grande de la base de datos y lo devuelve al navegador.

    <?php
    $db = new Pdo\Pgsql('pgsql:dbname=test host=localhost', $user, $pass);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->beginTransaction();
    $stmt = $db->prepare("SELECT oid FROM BLOBS WHERE ident = ?");
    $stmt->execute([$some_id]);
    $stmt->bindColumn('oid', $oid, PDO::PARAM_STR);
    $stmt->fetch(PDO::FETCH_BOUND);
    $stream = $db->lobOpen($oid, 'r');
    header("Content-type: application/octet-stream");
    fpassthru($stream);
    ?>

### Ver también

- Pdo\Pgsql::lobCreate() - Crear un nuevo objeto grande
- Pdo\Pgsql::lobUnlink() - Elimina un objeto grande
- pg_lo_create() - Crea un objeto de gran tamaño de PostgreSQL
- pg_lo_open() - Abre un objeto de gran tamaño de PostgreSQL

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open