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