Start · Sprachen · PHP · Referenz · cubrid_seq_insert

cubrid_seq_insert

Funktion

Fügt ein Element an einer bestimmten Position in eine Sequenz-Spalte (SET-Typ) einer CUBRID-Datenbanktabelle anhand der OID ein.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_seq_insert(resource $conn_identifier, string $oid, string $attr_name, int $index, string $seq_element): bool

Beschreibung

cubrid_seq_insert() ermöglicht das Einfügen eines neuen Elements in eine Spalte vom Typ Sequenz (SEQUENCE) einer CUBRID-Datenbank. Das Ziel-Objekt wird über seine OID (Object Identifier) adressiert, sodass gezielt ein einzelnes Datenbankobjekt manipuliert werden kann.

Der Parameter index gibt die Position an, an der das neue Element eingefügt werden soll. Die bestehenden Elemente ab dieser Position werden um eine Stelle nach hinten verschoben. CUBRID-Sequenz-Indizes sind 1-basiert, d. h. der erste Eintrag hat den Index 1.

Diese Funktion ist besonders nützlich, wenn mit CUBRID-spezifischen Collection-Typen (SET, MULTISET, SEQUENCE) gearbeitet wird und einzelne Elemente positionsgenau eingetragen werden müssen, ohne die gesamte Collection neu schreiben zu müssen.

Der Einsatz setzt eine aktive Verbindung zur CUBRID-Datenbank voraus, die über cubrid_connect() oder cubrid_connect_with_url() hergestellt wurde.

Parameter

Name Typ Default Beschreibung
$conn_identifier Pflicht resource Die aktive CUBRID-Verbindungsressource, zurückgegeben von cubrid_connect().
$oid Pflicht string Die OID (Object Identifier) des Zeilobjekts, das die Sequenz-Spalte enthält. Format z. B. @620|1|0.
$attr_name Pflicht string Der Name der Spalte vom Typ SEQUENCE, in die das Element eingefügt werden soll.
$index Pflicht int Die 1-basierte Position, an der das neue Element eingefügt wird. Bestehende Elemente ab dieser Position werden nach hinten verschoben.
$seq_element Pflicht string Der Wert des einzufügenden Elements als Zeichenkette.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück. Im Fehlerfall wird false zurückgegeben.

Beispiele

Element in eine Sequenz-Spalte einfügen

<?php
// Verbindung zur CUBRID-Datenbank herstellen
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
if (!$conn) {
    die('Verbindung fehlgeschlagen: ' . cubrid_error());
}

// OID des Ziel-Datensatzes ermitteln
$req = cubrid_execute($conn, "SELECT * FROM code WHERE s_name = 'X'", CUBRID_INCLUDE_OID);
cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);
cubrid_close_request($req);

// Element an Position 2 der Sequenz-Spalte 'info_seq' einfügen
$result = cubrid_seq_insert($conn, $oid, 'info_seq', 2, 'neuer_eintrag');

if ($result) {
    echo "Element erfolgreich eingefügt.\n";
    cubrid_commit($conn);
} else {
    echo "Fehler beim Einfügen: " . cubrid_error($conn) . "\n";
    cubrid_rollback($conn);
}

cubrid_disconnect($conn);
?>
Element erfolgreich eingefügt.

Element am Anfang einer Sequenz einfügen

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

// OID direkt als bekannten Wert verwenden
$oid = '@620|1|0';

// Element an die erste Position der Sequenz setzen
$result = cubrid_seq_insert($conn, $oid, 'tags', 1, 'erstes_tag');

if ($result) {
    echo "Tag erfolgreich an erste Position eingefügt.\n";
    cubrid_commit($conn);
} else {
    echo "Fehler: " . cubrid_error($conn) . "\n";
    cubrid_rollback($conn);
}

cubrid_disconnect($conn);
?>
Tag erfolgreich an erste Position eingefügt.

// Wichtig · Fallstricke

Achtung: Die CUBRID-Erweiterung für PHP ist nicht standardmäßig verfügbar und muss separat installiert und aktiviert werden. Die Funktion ist ausschließlich mit CUBRID-Datenbanken verwendbar.

Indizierung: CUBRID-Sequenzen sind 1-basiert – ein Index von 0 kann zu unerwartetem Verhalten führen.

Transaktionen: Nach erfolgreichen Änderungen sollte cubrid_commit() aufgerufen werden. Bei Fehlern empfiehlt sich cubrid_rollback(), um die Integrität der Daten sicherzustellen.

Verwandte Funktionen für das Arbeiten mit CUBRID-Sequenzen sind cubrid_seq_drop() (Element entfernen), cubrid_seq_put() (Element ersetzen) sowie cubrid_set_add() für SET-Typen.