Signatur
Beschreibung
cubrid_lob2_new() erzeugt ein neues Large Object (LOB) auf dem CUBRID-Datenbankserver. LOBs werden verwendet, um sehr große Datenmengen – etwa Binärdateien (BLOB) oder große Texte (CLOB) – in der Datenbank zu speichern, ohne diese direkt in einer regulären Tabellenspalte ablegen zu müssen.
Der Parameter type bestimmt die Art des LOB-Objekts: "BLOB" (Binary Large Object) eignet sich für binäre Daten wie Bilder, Videos oder sonstige Dateien, während "CLOB" (Character Large Object) für große Textmengen vorgesehen ist.
Das zurückgegebene LOB-Ressource-Handle kann anschließend mit Funktionen wie cubrid_lob2_write(), cubrid_lob2_read(), cubrid_lob2_bind() oder cubrid_lob2_close() verwendet werden. Typischerweise wird ein neues LOB-Objekt erzeugt, mit Daten befüllt und danach per cubrid_lob2_bind() an einen vorbereiteten SQL-Statement gebunden.
Nach der Verwendung sollte das LOB-Objekt mit cubrid_lob2_close() geschlossen werden, um Serverressourcen freizugeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn_identifier Pflicht | resource | Eine gültige CUBRID-Verbindungsressource, die zuvor mit cubrid_connect() oder cubrid_connect_with_url() geöffnet wurde. |
|
| $type | string | BLOB | Der Typ des LOB-Objekts: "BLOB" für binäre Daten oder "CLOB" für Zeichendaten. Groß-/Kleinschreibung wird nicht berücksichtigt. |
Rückgabewert
false zurückgegeben.Beispiele
BLOB aus einer Datei erstellen und in die Datenbank einfügen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error_msg());
}
// Neues BLOB-Objekt erstellen
$lob = cubrid_lob2_new($conn, 'BLOB');
if ($lob === false) {
die('LOB-Erstellung fehlgeschlagen: ' . cubrid_error_msg());
}
// Binärdaten aus einer Datei in das BLOB schreiben
$fileData = file_get_contents('/pfad/zur/datei.jpg');
cubrid_lob2_write($lob, $fileData);
// Vorbereiteten SQL-Statement erstellen und LOB binden
$req = cubrid_prepare($conn, 'INSERT INTO bilder (name, bild) VALUES (?, ?)');
cubrid_bind($req, 1, 'meinbild.jpg');
cubrid_lob2_bind($req, 2, $lob, 'BLOB');
cubrid_execute($req);
// Ressourcen freigeben
cubrid_lob2_close($lob);
cubrid_close_request($req);
cubrid_disconnect($conn);
echo 'Bild erfolgreich gespeichert.';
?>
CLOB mit großem Textinhalt anlegen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error_msg());
}
// Neues CLOB-Objekt erstellen
$clob = cubrid_lob2_new($conn, 'CLOB');
if ($clob === false) {
die('LOB-Erstellung fehlgeschlagen: ' . cubrid_error_msg());
}
// Großen Textinhalt in das CLOB schreiben
$text = str_repeat('Dies ist ein sehr langer Textinhalt. ', 1000);
cubrid_lob2_write($clob, $text);
// An SQL-Statement binden und ausführen
$req = cubrid_prepare($conn, 'INSERT INTO dokumente (titel, inhalt) VALUES (?, ?)');
cubrid_bind($req, 1, 'Langes Dokument');
cubrid_lob2_bind($req, 2, $clob, 'CLOB');
cubrid_execute($req);
cubrid_lob2_close($clob);
cubrid_close_request($req);
cubrid_disconnect($conn);
echo 'Dokument erfolgreich gespeichert.';
?>
// Wichtig · Fallstricke
Ressourcenverwaltung: Vergessen Sie nicht, LOB-Ressourcen nach der Verwendung mit cubrid_lob2_close() zu schließen. Nicht geschlossene LOB-Objekte können zu Speicher- und Ressourcenlecks auf dem Datenbankserver führen.
Transaktion: LOB-Operationen sollten innerhalb einer Transaktion durchgeführt werden, um die Datenkonsistenz zu gewährleisten. Verwenden Sie cubrid_set_autocommit() oder manuelle BEGIN/COMMIT-Anweisungen.
Diese Funktion setzt eine aktive CUBRID-Verbindung voraus und ist nur verfügbar, wenn die CUBRID-PHP-Erweiterung installiert ist.