Signatur
Beschreibung
cubrid_send_glo liest die in einem GLO-Objekt (General Large Object) gespeicherten Daten aus der CUBRID-Datenbank und sendet diese direkt an den Ausgabe-Puffer. GLO-Objekte dienen in CUBRID dazu, große binäre oder textuelle Datenmengen (z. B. Bilder, Dokumente, Mediendateien) in der Datenbank zu speichern.
Die Funktion eignet sich besonders dann, wenn der Inhalt eines GLO-Objekts unmittelbar an den Browser oder einen anderen Ausgabe-Stream übertragen werden soll, ohne ihn zunächst vollständig in eine PHP-Variable laden zu müssen. Dazu wird die OID (Object Identifier) des betreffenden GLO-Objekts übergeben.
Hinweis: Diese Funktion ist veraltet und wurde in neueren Versionen der CUBRID PHP-Erweiterung durch modernere API-Methoden ersetzt. Sie sollte in neuen Projekten nicht mehr eingesetzt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn_identifier Pflicht | resource | Die CUBRID-Verbindungsressource, die über cubrid_connect oder eine vergleichbare Verbindungsfunktion erzeugt wurde. |
|
| $oid Pflicht | string | Die OID (Object Identifier) des GLO-Objekts in der CUBRID-Datenbank, dessen Inhalt gelesen und ausgegeben werden soll. Die OID hat typischerweise die Form @classid|pageid|slotid. |
Rückgabewert
true zurück, wenn die Daten erfolgreich gelesen und ausgegeben wurden, andernfalls false bei einem Fehler (z. B. ungültige Verbindung oder OID).Beispiele
Bild aus GLO-Objekt direkt ausgeben
<?php
// Verbindung zur CUBRID-Datenbank herstellen
$conn = cubrid_connect('localhost', 33000, 'meineDatenbank', 'admin', 'passwort');
if (!$conn) {
die('Verbindung zur Datenbank fehlgeschlagen.');
}
// OID des GLO-Objekts (z. B. aus einer vorherigen Abfrage ermittelt)
$oid = '@0|1|1';
// HTTP-Header für Bild setzen
header('Content-Type: image/jpeg');
// GLO-Daten direkt ausgeben
if (!cubrid_send_glo($conn, $oid)) {
echo 'Fehler beim Ausgeben des GLO-Objekts.';
}
cubrid_disconnect($conn);
?>
GLO-Objekt-Inhalt in Datei umleiten
<?php
$conn = cubrid_connect('localhost', 33000, 'meineDatenbank', 'admin', 'passwort');
if (!$conn) {
die('Verbindung fehlgeschlagen.');
}
$oid = '@0|2|3';
// Ausgabe-Puffer starten, um GLO-Daten abzufangen
ob_start();
$result = cubrid_send_glo($conn, $oid);
$daten = ob_get_clean();
if ($result) {
// Daten in eine lokale Datei schreiben
file_put_contents('/tmp/glo_export.bin', $daten);
echo 'GLO-Objekt erfolgreich exportiert. Größe: ' . strlen($daten) . ' Bytes';
} else {
echo 'Fehler beim Lesen des GLO-Objekts.';
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Veraltet: Die Funktion cubrid_send_glo sowie der gesamte GLO-Mechanismus gelten in modernen CUBRID-Versionen als veraltet. Neue Projekte sollten stattdessen die CUBRID LOB (Large Object)-API verwenden, die durch Funktionen wie cubrid_lob2_new, cubrid_lob2_read und cubrid_lob2_close bereitgestellt wird.
Da die Funktion Daten direkt in den Ausgabe-Puffer schreibt, sollten vor dem Aufruf keine anderen Ausgaben erfolgen, wenn die Daten z. B. als HTTP-Response gesendet werden. Andernfalls kann es zu korrupten Ausgaben kommen. Es empfiehlt sich, ob_start() einzusetzen, wenn die Daten zunächst zwischengespeichert werden sollen.