Start · Sprachen · PHP · Referenz · cubrid_get_class_name

cubrid_get_class_name

Funktion

Gibt den Klassennamen (Tabellenname) eines CUBRID-Objekts anhand seiner OID zurück.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_get_class_name(resource $conn_identifier, string $oid): string|false

Beschreibung

cubrid_get_class_name() ermittelt den Namen der CUBRID-Klasse (entspricht einer Tabelle im relationalen Kontext), zu der ein bestimmtes Objekt gehört, das über seine OID (Object Identifier) identifiziert wird. Die OID ist ein eindeutiger Bezeichner für Datensätze im objektorientierten Datenbankmodell von CUBRID.

Diese Funktion ist nützlich, wenn man mit CUBRID-Objekten arbeitet und dynamisch herausfinden möchte, zu welcher Klasse/Tabelle ein gegebenes Objekt gehört, ohne die Klasse bereits aus dem Kontext zu kennen. Dies ist besonders praktisch bei generischen Datenbank-Utilities oder bei der Verarbeitung von Objektreferenzen.

Sie wird in der Regel zusammen mit anderen OID-basierten Funktionen wie cubrid_get() oder cubrid_is_instance() verwendet, um Objekte in einer CUBRID-Datenbank zu inspizieren und zu verwalten.

Parameter

Name Typ Default Beschreibung
$conn_identifier Pflicht resource Die CUBRID-Verbindungsressource, die von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wurde.
$oid Pflicht string Die OID (Object Identifier) des Objekts, dessen Klassenname ermittelt werden soll. Eine OID hat typischerweise die Form @pageId|slotId|volumeId, z. B. @620|1|0.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den Namen der CUBRID-Klasse (Tabellenname) als Zeichenkette zurück, wenn die OID gültig ist. Im Fehlerfall (ungültige OID, fehlgeschlagene Verbindung usw.) wird false zurückgegeben.

Beispiele

Klassennamen anhand einer OID ermitteln

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

if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

// Eine bekannte OID eines Datensatzes in der Tabelle 'athlete'
$oid = '@620|1|0';

$className = cubrid_get_class_name($conn, $oid);

if ($className !== false) {
    echo 'Die OID gehört zur Klasse: ' . $className;
} else {
    echo 'Klassenname konnte nicht ermittelt werden.';
}

cubrid_disconnect($conn);
Die OID gehört zur Klasse: athlete

OID-Klasse prüfen und Objekt laden

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

if (!$conn) {
    die('Verbindung fehlgeschlagen.');
}

$oid = '@620|1|0';

// Prüfen, ob die OID existiert
if (!cubrid_is_instance($conn, $oid)) {
    echo 'Die angegebene OID ist keine gültige Instanz.';
    cubrid_disconnect($conn);
    exit;
}

$className = cubrid_get_class_name($conn, $oid);

if ($className !== false) {
    echo 'Klasse: ' . $className . PHP_EOL;

    // Alle Attribute des Objekts laden
    $data = cubrid_get($conn, $oid);
    if (is_array($data)) {
        foreach ($data as $key => $value) {
            echo $key . ': ' . $value . PHP_EOL;
        }
    }
} else {
    echo 'Fehler beim Ermitteln des Klassennamens.';
}

cubrid_disconnect($conn);
Klasse: athlete code: 10999 name: Fernandez Jesus sex: M nation_code: ESP event: Swimming

// Wichtig · Fallstricke

Hinweis zur OID: OIDs sind CUBRID-spezifisch und entsprechen keinem Standard-SQL-Konzept. Sie ändern sich nicht über die Lebensdauer eines Datensatzes, können jedoch nach einem Datenbankexport und -import abweichen.

Die Funktion steht nur zur Verfügung, wenn PHP mit der CUBRID-Extension kompiliert wurde (--with-cubrid) und erfordert eine aktive Datenbankverbindung. Ohne gültige Verbindungsressource wird false zurückgegeben.

CUBRID verwendet den Begriff Klasse im Sinne des objektorientierten Datenbankmodells; im relationalen Kontext entspricht eine Klasse in der Regel einer Tabelle.