Löscht Datensätze

# pg_delete

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

pg_delete — Löscht Datensätze

### Beschreibung

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

pg_delete() löscht die Datensätze aus `table_name`, deren Feldnamen und Werte im Array `conditions` angegeben wurden.

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

Standardmäßig übergibt pg_delete() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss das Flag `PGSQL_DML_ESCAPE` 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, aus der Zeilen gelöscht werden.

`conditions`

  Ein Array dessen Schlüssel den Spaltennamen der Tabelle `table_name` entsprechen und dessen Werte den zu löschenden Spaltenwerten entsprechen.

`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. Falls die Konstante `PGSQL_DML_STRING` im Parameter `flags` übergeben wurde, wird ein String zurückgegeben.

### Changelog

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

### Beispiele

Beispiel #1 pg_delete()-Beispiel

`<?php
$db = pg_connect('dbname=foo');
// 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_delete($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($res) {
echo "POST-Daten wurden gelöscht: $res\n";
} else {
echo "Aufruf erfolgte mit falschen Angaben\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