pg_query
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
pg_query — Führt eine Abfrage aus
Beschreibung
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.
WarnungSeit 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.
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);
?>