Start · Sprachen · PHP · Referenz · cubrid_is_instance

cubrid_is_instance

Funktion

Prüft, ob die durch eine OID referenzierte Instanz in der CUBRID-Datenbank existiert.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_is_instance(resource $conn_identifier, string $oid): int

Beschreibung

cubrid_is_instance überprüft, ob eine bestimmte Objektinstanz in der CUBRID-Datenbank vorhanden ist, indem die übergebene OID (Object Identifier) verwendet wird. Die Funktion ist nützlich, wenn man sicherstellen möchte, dass eine zuvor gespeicherte OID noch auf ein gültiges Datenbankobjekt verweist, bevor weitere Operationen damit durchgeführt werden.

CUBRID ist eine relationale Datenbank mit objektorientierten Erweiterungen. Jede Instanz (Zeile) in einer Tabelle kann über eine eindeutige OID adressiert werden. Da Instanzen gelöscht werden können, empfiehlt es sich, vor dem Zugriff auf eine Instanz deren Existenz mit dieser Funktion zu prüfen.

Die Funktion gibt 1 zurück, wenn die Instanz existiert, 0, wenn sie nicht existiert, und -1 bei einem Fehler. Dadurch lässt sich das Ergebnis gut in Bedingungen verwenden.

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) der zu prüfenden Instanz, z. B. @620|1|0. Diese wird typischerweise von Funktionen wie cubrid_insert_id oder cubrid_get_class_name geliefert.

Rückgabewert

Typ
int
Beschreibung
Gibt 1 zurück, wenn die Instanz existiert, 0, wenn sie nicht existiert, und -1 bei einem Fehler (z. B. ungültige OID oder fehlgeschlagene Verbindung).

Beispiele

Existenz einer Instanz vor dem Zugriff prüfen

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

// Beispiel-OID, die von einer vorherigen Operation gespeichert wurde
$oid = '@620|1|0';

$result = cubrid_is_instance($conn, $oid);

if ($result === 1) {
    echo "Instanz existiert. Zugriff wird fortgesetzt.";
    // Weitere Operationen mit der OID ...
} elseif ($result === 0) {
    echo "Instanz existiert nicht mehr (möglicherweise gelöscht).";
} else {
    echo "Fehler beim Prüfen der Instanz (ungültige OID oder Verbindungsfehler).";
}

cubrid_disconnect($conn);
?>
Instanz existiert. Zugriff wird fortgesetzt.

Mehrere OIDs in einer Schleife prüfen

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

$oids = ['@620|1|0', '@620|2|0', '@620|99|0'];

foreach ($oids as $oid) {
    $exists = cubrid_is_instance($conn, $oid);
    if ($exists === 1) {
        echo "OID $oid ist vorhanden.\n";
    } elseif ($exists === 0) {
        echo "OID $oid wurde nicht gefunden.\n";
    } else {
        echo "Fehler bei OID $oid.\n";
    }
}

cubrid_disconnect($conn);
?>
OID @620|1|0 ist vorhanden. OID @620|2|0 ist vorhanden. OID @620|99|0 wurde nicht gefunden.

// Wichtig · Fallstricke

Hinweis: Die Funktion ist ausschließlich für CUBRID-Datenbanken verfügbar und erfordert die CUBRID PHP-Erweiterung. Sie steht nicht für andere Datenbanksysteme zur Verfügung.

OIDs sind datenbankspezifisch und können sich nach einem Neuimport oder einer Wiederherstellung der Datenbank ändern. Es empfiehlt sich daher, OIDs nicht dauerhaft außerhalb der Datenbank zu speichern, ohne deren Gültigkeit bei Bedarf erneut zu prüfen.

Bei einem Rückgabewert von -1 sollte mit cubrid_error_msg oder cubrid_error_code die genaue Fehlerursache ermittelt werden.