Start · Sprachen · PHP · Referenz · cubrid_drop

cubrid_drop

Funktion

Löscht eine Instanz (Objekt) aus der CUBRID-Datenbank anhand ihrer OID.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_drop(resource $conn_identifier, string $oid): bool

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

Typ
bool
Beschreibung
Gibt 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);
?>
Instanz erfolgreich gelöscht.

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);
?>
Instanz gelöscht: @620|1|0

// 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.