Start · Sprachen · PHP · Referenz · cubrid_lob2_close

cubrid_lob2_close

Funktion

Schließt ein zuvor geöffnetes CUBRID-LOB2-Objekt und gibt die damit verbundenen Ressourcen frei.

seit PHP 5.3.1 Kategorie: db

Signatur

cubrid_lob2_close(resource $lob_identifier): bool

Beschreibung

cubrid_lob2_close() schließt ein LOB-Objekt (Large Object), das durch cubrid_lob2_new() oder durch eine Abfrage erzeugt wurde. Nach dem Schließen ist die Ressource ungültig und darf nicht mehr verwendet werden.

LOB-Objekte in CUBRID werden verwendet, um große Binär- (BLOB) oder Zeichendaten (CLOB) zu speichern, die die übliche Spaltengröße überschreiten würden. Da LOB-Objekte Serverressourcen belegen, sollten sie nach der Verwendung stets explizit mit dieser Funktion geschlossen werden, um Ressourcenlecks zu vermeiden.

In typischen Anwendungsszenarien öffnet man ein LOB-Objekt, liest oder schreibt Daten und schließt es anschließend mit cubrid_lob2_close(). Dies gilt sowohl für BLOB- als auch für CLOB-Objekte gleichermaßen.

Parameter

Name Typ Default Beschreibung
$lob_identifier Pflicht resource Die LOB-Ressource, die durch cubrid_lob2_new() oder eine CUBRID-Abfrage zurückgegeben wurde und geschlossen werden soll.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn das LOB-Objekt erfolgreich geschlossen wurde, andernfalls false.

Beispiele

LOB-Objekt öffnen, beschreiben und schließen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

// Neues BLOB-Objekt erzeugen
$lob = cubrid_lob2_new($conn, 'BLOB');

if ($lob) {
    // Daten in das LOB schreiben
    $data = 'Dies ist ein langer Binärinhalt...';
    cubrid_lob2_write($lob, $data);

    // LOB-Objekt nach Verwendung schließen
    if (cubrid_lob2_close($lob)) {
        echo 'LOB-Objekt erfolgreich geschlossen.';
    } else {
        echo 'Fehler beim Schließen des LOB-Objekts.';
    }
} else {
    echo 'LOB-Objekt konnte nicht erstellt werden.';
}

cubrid_disconnect($conn);
?>
LOB-Objekt erfolgreich geschlossen.

CLOB-Objekt aus Abfrageergebnis lesen und schließen

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');

$req = cubrid_execute($conn, "SELECT content FROM articles WHERE id = 1");
if ($req) {
    $row = cubrid_fetch_row($req, CUBRID_LOB);
    $clob = $row[0];

    if ($clob) {
        // CLOB-Inhalt lesen
        $text = cubrid_lob2_read($clob, 1024);
        echo 'Gelesener Inhalt: ' . $text . PHP_EOL;

        // CLOB nach dem Lesen schließen
        cubrid_lob2_close($clob);
        echo 'CLOB-Ressource geschlossen.';
    }
    cubrid_close_request($req);
}

cubrid_disconnect($conn);
?>
Gelesener Inhalt: ... CLOB-Ressource geschlossen.

// Wichtig · Fallstricke

Ressourcenverwaltung: LOB-Objekte belegen Serverressourcen auf dem CUBRID-Datenbankserver. Wird cubrid_lob2_close() nicht aufgerufen, können Ressourcenlecks entstehen, besonders in lang laufenden Skripten oder Schleifen mit vielen LOB-Zugriffen.

Nach dem Aufruf von cubrid_lob2_close() darf die LOB-Ressource nicht mehr verwendet werden – weitere Lese- oder Schreiboperationen auf einem geschlossenen LOB-Objekt führen zu Fehlern.