Signatur
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
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);
?>
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);
?>
// 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.