Start · Sprachen · PHP · Referenz · cubrid_put

cubrid_put

Funktion

Aktualisiert den Wert einer oder mehrerer Spalten (Attribute) eines CUBRID-Objekts anhand seiner OID.

seit PHP 8.3.1 Kategorie: db

Signatur

cubrid_put(resource $conn_identifier, string $oid, string $attr = null, mixed $value = null): bool

Beschreibung

cubrid_put ermöglicht das direkte Aktualisieren von Attributen (Spalten) eines einzelnen Datensatzes in einer CUBRID-Datenbank, der über seine Objekt-ID (OID) eindeutig identifiziert wird. Dies entspricht einem UPDATE-Statement, das auf genau einen Datensatz zielt.

Die Funktion kann auf zwei Arten verwendet werden: Entweder wird ein einzelnes Attribut mit seinem Namen und dem neuen Wert übergeben, oder es wird ein assoziatives Array übergeben, das mehrere Attribut-Wert-Paare enthält. Im letzteren Fall müssen $attr und $value weggelassen werden und stattdessen wird das Array direkt als zweites Argument übergeben.

Die OID wird typischerweise über Funktionen wie cubrid_current_oid oder aus einem vorherigen Query-Ergebnis gewonnen. Diese Art der Aktualisierung ist besonders effizient, wenn der Primärschlüssel unbekannt ist oder wenn mit dem CUBRID-spezifischen Objektmodell gearbeitet wird.

Beachte, dass diese Funktion ausschließlich für CUBRID-Datenbanken verfügbar ist und der entsprechende PHP-CUBRID-Extension installiert sein muss.

Parameter

Name Typ Default Beschreibung
$conn_identifier Pflicht resource Eine gültige CUBRID-Verbindungsressource, die zuvor mit cubrid_connect oder cubrid_connect_with_url erzeugt wurde.
$oid Pflicht string Die Objekt-ID (OID) des Datensatzes, der aktualisiert werden soll. Die OID hat das Format @classid|pageid|slotid, z. B. @0|1|1.
$attr string|array null Der Name des zu aktualisierenden Attributs (Spaltenname) als String, oder ein assoziatives Array mit mehreren Attribut-Wert-Paaren (['attr1' => value1, 'attr2' => value2]). Wird ein Array übergeben, muss $value weggelassen werden.
$value mixed null Der neue Wert für das in $attr angegebene Attribut. Wird nur verwendet, wenn $attr ein String (Attributname) ist.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück. Im Fehlerfall wird false zurückgegeben, etwa wenn die OID ungültig ist, die Verbindung nicht besteht oder das Attribut nicht existiert.

Beispiele

Einzelnes Attribut per OID aktualisieren

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

// OID des Datensatzes ermitteln (z. B. aus einem Query)
$req = cubrid_execute($conn, "SELECT * FROM person WHERE name = 'Alice'", CUBRID_INCLUDE_OID);
cubrid_fetch($req);
$oid = cubrid_current_oid($req);

// Einzelnes Attribut 'age' aktualisieren
$result = cubrid_put($conn, $oid, 'age', 30);

if ($result) {
    echo "Attribut erfolgreich aktualisiert.";
} else {
    echo "Fehler beim Aktualisieren.";
}

cubrid_close_request($req);
cubrid_disconnect($conn);
?>
Attribut erfolgreich aktualisiert.

Mehrere Attribute gleichzeitig per Array aktualisieren

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

$req = cubrid_execute($conn, "SELECT * FROM person WHERE id = 5", CUBRID_INCLUDE_OID);
cubrid_fetch($req);
$oid = cubrid_current_oid($req);

// Mehrere Attribute auf einmal aktualisieren
$updates = [
    'name'  => 'Bob',
    'age'   => 25,
    'email' => 'bob@example.com',
];

$result = cubrid_put($conn, $oid, $updates);

if ($result) {
    echo "Mehrere Attribute erfolgreich aktualisiert.";
} else {
    echo "Fehler beim Aktualisieren.";
}

cubrid_close_request($req);
cubrid_disconnect($conn);
?>
Mehrere Attribute erfolgreich aktualisiert.

// Wichtig · Fallstricke

OID-Gültigkeit: Die OID ist sitzungsgebunden und kann sich nach einem Server-Neustart oder einer Reorganisation der Datenbank ändern. Verwende OIDs daher nicht als langfristige Identifikatoren außerhalb einer Datenbankverbindung.

CUBRID_INCLUDE_OID: Damit cubrid_current_oid eine OID liefern kann, muss das Query mit dem Flag CUBRID_INCLUDE_OID ausgeführt werden. Ohne dieses Flag steht keine OID zur Verfügung.

Sicherheit: Werte sollten, wenn sie aus Benutzereingaben stammen, grundsätzlich validiert und typisiert werden, bevor sie an cubrid_put übergeben werden, um unerwünschte Datenbankänderungen zu verhindern.