Aktualisiert eine Tabelle

# pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

pg_update — Aktualisiert eine Tabelle

### Beschreibung

function pg_update(
PgSql\Connection `$connection`,
string `$table_name`,
array `$values`,
array `$conditions`,
int `$flags` = `PGSQL_DML_EXEC`
): string|bool

pg_update() überschreibt alle Datensätze in `table_name`, die die Bedingungen in `conditions` erfüllen, mit den Werten aus `values`.

Falls `flags` angegeben wurde, wird pg_convert() mit den angegebenen Flags auf `values` angewendet.

Standardmäßig übergibt pg_update() Rohwerte. Die Werte müssen entweder maskiert werden oder das Flag `PGSQL_DML_ESCAPE` muss in `flags` angegeben werden. `PGSQL_DML_ESCAPE` maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d. h. Werte maskieren und validieren.

### Parameter-Liste

`connection`

  Eine PgSql\Connection-Instanz.

`table_name`

  Der Name der Tabelle, die aktualisiert werden soll.

`values`

  Ein Array, dessen Schlüssel Feldnamen von `table_name` sind und mit dessen Werten die entsprechenden Datensätze aktualisiert werden.

`conditions`

  Ein Array, dessen Schlüssel Feldnamen von `table_name` sind und dessen Werte die Bedingungen sind, die ein Datensatz erfüllen muss, um aktualisiert zu werden.

`flags`

  Jede Kombination aus `PGSQL_CONV_FORCE_NULL`, `PGSQL_DML_NO_CONV`, `PGSQL_DML_ESCAPE`, `PGSQL_DML_EXEC`, `PGSQL_DML_ASYNC` und `PGSQL_DML_STRING`. Falls `PGSQL_DML_STRING` in den `flags` enthalten ist, wird der Abfragestring zurückgegeben. Werden `PGSQL_DML_NO_CONV` oder `PGSQL_DML_ESCAPE` angegeben, wird pg_convert() intern nicht aufgerufen.

### Rückgabewerte

Gibt bei Erfolg `true` zurück. Bei einem Fehler wird `false` zurückgegeben. Gibt einen String zurück, falls `PGSQL_DML_STRING` mit dem Parameter `flags` übergeben wurde.

### Changelog

Version | Beschreibung
--- | ---
8.1.0 | Der Parameter `connection` erwartet nun eine PgSql\Connection-Instanz; vorher wurde eine Ressource erwartet.

### Beispiele

Beispiel #1 pg_update()-Beispiel

    <?php
      $db = pg_connect('dbname=foo');
      $data = array('field1'=>'AA', 'field2'=>'BB');
      // Das ist einigermaßen sicher, da alle Werte maskiert werden.
      // Allerdings unterstützt PostgreSQL JSON/Array. Diese sind nicht
      // sicher, da sie Abfragen weder maskieren noch vorbereiten.
      $res = pg_update($db, 'post_log', $_POST, $data);
      if ($res) {
          echo "Daten wurden aktualisiert: $res\n";
      } else {
          echo "Falsche Eingabe\n";
      }
    ?>

### Siehe auch

- pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open