# pg_query

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

pg_query — Führt eine Abfrage aus

### Beschreibung

pg_query(PgSql\Connection `$connection` = ?, string `$query`): PgSql\Result|false

pg_query() führt die `query` auf der angegebenen Datenbank-Verbindung `connection` aus. In der Regel sollte pg_query_params() bevorzugt werden.

Falls ein Fehler auftritt und `false` zurückgegeben wird, können Sie Details zu diesem Fehler mit pg_last_error() anzeigen, vorausgesetzt, die Verbindungskennung ist gültig.

> Hinweis: Obwohl der Parameter `connection` weggelassen werden kann, ist dies nicht empfehlenswert, da es die Fehlersuche in Skripten erschweren kann.

> Hinweis:

> Diese Funktion ersetzt die Funktion pg_exec(). pg_exec() wird aus Gründen der Kompatibilität immer noch unterstützt, es wird jedoch empfohlen, den neuen Funktionsnamen zu verwenden.

### Parameter-Liste

`connection`

  Eine PgSql\Connection-Instanz. Falls `connection` nicht angegeben wurde, wird die Standardverbindung benutzt. Das ist die zuletzt mit pg_connect() oder pg_pconnect() aufgebaute Verbindung.

  Warnung

  Seit PHP 8.1.0 ist die Verwendung der Standardverbindung veraltet.

`query`

  Die auszuführende(n) SQL-Anweisung(en). Werden mehrere Anweisungen an pg_query() übergeben, werden sie automatisch in einer einzigen Transaktion ausgeführt, es sei denn, die Anweisungsfolge enthält explizite BEGIN/COMMIT-Anweisungen. Von der Ausführung mehrerer Transaktionen innerhalb eines Funktionsaufrufs wird abgeraten.

  Warnung

  String-Interpolation von Anwenderdaten ist sehr gefährlich, und führt wahrscheinlich zu SQL-Injection-Sicherheistlücken. In der Regel sollte pg_query_params() bevorzugt werden, wobei Anwenderdaten als Parameter übergeben werden anstatt sie in der Abfragezeichenkette zu ersetzen.

  Jegliche Anwenderdaten, die direkt in eine Abfragezeichenkette interpoliert werden, sollten ordnungsgemäß maskiert werden.

### Rückgabewerte

Bei Erfolg wird eine PgSql\Result-Instanz zurückgegeben. Bei einem Fehler wird `false` zurückgegeben.

### Changelog

Version | Beschreibung
--- | ---
8.1.0 | Gibt nun eine PgSql\Result-Instanz zurück; vorher wurde eine Ressource zurückgegeben.
8.1.0 | Der Parameter `connection` erwartet nun eine PgSql\Connection-Instanz; vorher wurde eine Ressource erwartet.

### Beispiele

Beispiel #1 pg_query()-Beispiel

`<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Ein Fehler ist aufgetreten.\n";
exit;
}
$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
echo "Ein Fehler ist aufgetreten.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Autor: $row[0] E-Mail: $row[1]";
echo "<br />\n";
}
?>`

Beispiel #2 pg_query() mit mehreren Anweisungen

`<?php
$conn = pg_pconnect("dbname=publisher");
// diese Anweisungen werden in einer einzigen Transaktion ausgeführt.
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";
pg_query($conn, $query);
?>`

### Siehe auch

- pg_connect() - Öffnet eine PostgreSQL-Verbindung
- pg_pconnect() - Öffnet eine persistente PostgreSQL-Verbindung
- pg_fetch_array() - Liefert eine Zeile als Array
- pg_fetch_object() - Liefert einen Datensatz als Objekt
- pg_num_rows() - Gibt die Anzahl der Zeilen in einem Abfrageergebnis zurück
- pg_affected_rows() - Gibt die Anzahl betroffener Datensätze (Tupel) zurück

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