pg_execute
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_execute — Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis
Beschreibung
Fordert den Datenankserver auf, eine vorbereitete Anfrage mit den angegebenen Parametern auszuführen und wartet auf das Ergebnis.
pg_execute() ist ähnlich wie pg_query_params(), mit dem Unterschied, dass das auszuführende Kommando zuvor als vorbereitete Abfrage definiert wurde und kein SQL-String ist. Damit werden Abfragen, die wiederholt verwendet werden, nur ein einziges Mal geparst und geplant und nicht jedesmal, wenn sie ausgeführt werden. Das Kommando muss zuvor in der aktuellen Datenbanksitzung vorbereitet worden sein. pg_execute() wird von PostgreSQL ab der Version 7.4 unterstützt und wird in allen früheren Versionen fehlschlagen.
Die Parameter sind identisch zu denen in pg_query_params(), außer dass der Name eines vorbereiteten Kommandos anstatt einer SQL-Abfrage übergeben wird.
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.
-
stmtname
-
Der Name der vorbereiteten Abfrage, die ausgeführt werden soll. Falls "" angegeben wurde, wird die unbenannte Abfrage ausgeführt. Dieser Name muss zuvor mit pg_prepare(), pg_send_prepare() oder dem SQL-Kommando
PREPARE
vorbereitet worden sein. -
params
-
Ein Array, das die Parameter enthält, mit denen die Platzhalter $1, $2 usw. im originalen Abfragestring ersetzt werden. Die Anzahl der Arrayelemente muss mit der Anzahl der Platzhalter übereinstimmen.
WarnungBeim Aufruf dieser Funktion werden die Elemente in Strings konvertiert.
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_execute() benutzen:
<?php
// Zu der Datenbank "mary" verbinden
$dbconn = pg_connect("dbname=mary");
// Eine Abfrage zur Ausführung vorbereiten
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
// Die vorbereitete Abfrage ausführen. Es ist nicht notwendig,
// den String "Joe's Widgets" zu maskieren
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// Dieselbe vorbereitete Abfrage nochmal ausführen,
// diesmal mit einem anderen Parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
?>
Siehe auch
- pg_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Anfrage mit den übergebenen Parametern zu erzeugen und wartet auf ihre Beendigung
- pg_send_prepare() - Sendet eine Aufforderung an den Server, eine vorbereitete Abfrage mit den übergebenen Parametern zu erzeugen, ohne auf ihre Beendigung zu warten
- pg_query_params() - Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden