Funktion „update_data()“
bool update_data(array $update, numeric $typ=null, array $relation=null, bool $nometa=null);
Funktion zum Ändern von Datensätzen (./limbas_src/gtab/gtab.lib)
Parameter:
$update
- Durch gültige Einstellungen im $update-Array lassen sich die Inhalte beliebig vieler Tabellenfelder aus beliebig vielen Tabellen mit einem Funktionsaufruf in der Datenbank verändern. Für jedes zu verändernde Tabellenfeld ist ein Array-Element notwendig. Das Tabellenfeld wird dabei eindeutig im Index des Array-Elements spezifiziert, der neue Tabellenfeld-Inhalt ist der Wert des Array-Elements.
$update = array();
$update["$tableID_1,$fieldID_1,$datasetID_1"] = $value_1;
$update["$tableID_2,$fieldID_2,$datasetID_2"] = $value_2;
.
.
.
$update["$tableID_n,$fieldID_n,$datasetID_n"] = $value_n;
Dabei sind die folgenden Variablen durch entsprechende Werte zu ersetzen:
- $tableID_1, $tableID_2, …, $tableID_n: Tabellen-ID des Feldes, dessen Inhalt verändert werden soll.
- $fieldID_1, $fieldID_2, …, $fieldID_n: Feld-ID des Feldes, dessen Inhalt verändert werden soll.
- $datasetID_1, $datasetID_2, …, $datasetID_n: Datensatz-ID des Feldes, dessen Inhalt verändert werden soll.
- $value_1, $value_2, …, $value_n: Neuer Inhalt für das spezifizierte Tabellenfeld
Wird die $datasetID auf 0 gesetzt, legt Limbas automatisch einen neuen Datensatz an.
$typ
$relation
- Sinnvollerweise erstellt mit init_relation(). Dieser Parameter wird nur berücksichtigt, wenn im ersten Parameter ($update) eine Datensatz-ID 0 ist, Limbas also im Hintergrund automatisch einen neuen Datensatz anlegt. Ist $relation gesetzt, wird der neu erstellte Datensatz automatisch mit dem durch $relation spezifizierten Datensatz verknüpft.
$nometa
- Nur relevant bei updates der Files-Tabelle. Ist $nometa gesetzt, werden die Metadaten der Datei nicht aktualisiert
Rückgabewert:
- true: Die Änderungen wurden erfolgreich in der Datenbank übernommen. Dabei ist jedoch zu berücksichtigen, dass mögliche ungültige Einstellungen im $update-Array vor dem eigentlichen Datenbank-Update ausgefiltert werden.
- false: Beim Ändern der Daten in der Datenbank ist ein Fehler aufgetreten.
- Datensatz-ID: Es wurde im $update-Array als Datensatz-ID eine 0 übergeben. Limbas hat einen neuen Datensatz angelegt und gibt die ID des angelegten Datensatzes zurück.
- Array: Beim Ändern von manchen Datensätzen ist ein Fehler aufgetreten. Das Array enthält als key die Tabellen-ID, als Wert die ID des Datensatzes bei dem ein Fehler aufgetreten ist.
Datumskonvertierung
Die Datumsbehandlung von Limbas umfasst die Bereiche Datenbank, GUI, Export/Import und API. Dabei wird das Datum aus der Datenbank für die verschiedenen Ausgabekanäle sowie in die Datenbank aus verschiedenen Quellen in das erwartete Format konvertiert. Die Formate können je nach Datenbank und Lokalisierung unterschiedlich sein und sollten stets mit den zur Verfügung stehenden Limbas Funktionen konvertiert werden. Das lokale Datum ist in den Usereinstellungen des angemeldeten Users definiert. Das Ergebnis aus get_gresult() ist die native Ausgabe der Datenbank und kann über die Funktion get_date() in das lokale Datumsformat konvertiert werden. Umgekehrt wird zum speichern über update_data() das lokale Datumsformat erwartet und muß somit nicht konvertiert werden. Soll ein ausgelesener Wert über get_data() direkt wieder in die Datenbank über update_data() geschrieben werden muß er also mit get_date() konvertiert werden. Zusätzlich
- get_date($date) : Konvertierungsfunktion in das lokale Datum des angemeldeten Users
- convert_date($date) : Konvertierungsfunktion zum nativen speichern in die Datenbank über SQL.
Beispiele:
Ausgabe von get_data() mit PostgreSQL : ‚2023:05:25‘
gresult = get_gresult(1);
...
[1] => Array
(
[0] => '2023:05:25'
gresult = get_gresult(1);
...
[1] => Array
(
[0] => '2023:05:25'
$update["1,1,1"] = get_date($gresult[1][1][0]);
update_data(update);