Führt eine Abfrage aus

# pg_query

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

pg_query — Führt eine Abfrage aus

### Beschreibung

function 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