Signatur
Beschreibung
cubrid_drop() löscht eine bestimmte Instanz (auch Objekt oder Zeile genannt) aus einer CUBRID-Datenbank. Die zu löschende Instanz wird dabei eindeutig über ihre OID (Object Identifier) identifiziert. OIDs sind CUBRID-spezifische Bezeichner, die jede persistente Instanz in der Datenbank eindeutig adressieren.
Diese Funktion ist insbesondere nützlich, wenn man im Rahmen des objekt-relationalen Datenbankmodells von CUBRID mit einzelnen Instanzen arbeitet, die über ihre OID referenziert werden – etwa nach einem cubrid_get_object_attr()-Aufruf oder bei der Arbeit mit CUBRID-Collections.
Im Unterschied zu einem klassischen DELETE-Statement via SQL agiert cubrid_drop() direkt auf Objektebene ohne die Notwendigkeit, einen vollständigen SQL-Ausdruck zu formulieren. Die Funktion gibt true zurück, wenn das Löschen erfolgreich war, oder false bei einem Fehler.
Zu beachten ist, dass cubrid_drop() ausschließlich für CUBRID-Verbindungen gilt und nicht auf anderen Datenbanksystemen funktioniert.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $conn_identifier Pflicht | resource | Die CUBRID-Verbindungskennung, die von cubrid_connect() oder cubrid_connect_with_url() zurückgegeben wurde. |
|
| $oid Pflicht | string | Die OID der zu löschenden Instanz, z. B. @620|1|0. Diese wird typischerweise aus einem vorherigen CUBRID-Abfrageergebnis entnommen. |
Rückgabewert
true zurück, wenn die Instanz erfolgreich gelöscht wurde, oder false bei einem Fehler (z. B. ungültige OID oder fehlende Datenbankverbindung).Beispiele
Instanz per OID löschen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error());
}
// OID einer bekannten Instanz (z. B. aus einer vorherigen Abfrage)
$oid = '@620|1|0';
$result = cubrid_drop($conn, $oid);
if ($result) {
echo 'Instanz erfolgreich gelöscht.';
} else {
echo 'Fehler beim Löschen: ' . cubrid_error($conn);
}
cubrid_disconnect($conn);
?>
OID aus Abfrageergebnis ermitteln und Instanz löschen
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
die('Verbindungsfehler: ' . cubrid_error());
}
// OID aus Abfrageergebnis holen
$req = cubrid_execute($conn, "SELECT * FROM person WHERE name = 'John'", CUBRID_INCLUDE_OID);
if ($req) {
$row = cubrid_fetch($req, CUBRID_ASSOC | CUBRID_OID);
$oid = cubrid_get_cur_oid($req);
cubrid_close_request($req);
if ($oid) {
$deleted = cubrid_drop($conn, $oid);
echo $deleted ? 'Instanz gelöscht: ' . $oid : 'Löschen fehlgeschlagen.';
}
}
cubrid_disconnect($conn);
?>
// Wichtig · Fallstricke
Vorsicht: Das Löschen per OID ist unwiderruflich und umgeht keine Fremdschlüssel-Constraints auf Anwendungsebene. Stellen Sie sicher, dass keine anderen Instanzen noch auf die zu löschende OID referenzieren, bevor Sie cubrid_drop() aufrufen.
OIDs sind CUBRID-spezifisch und nicht mit primären Schlüsseln anderer RDBMS vergleichbar. Für portablen Code sollte man stattdessen reguläre SQL-DELETE-Anweisungen bevorzugen.