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