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