pg_query_params

(PHP 5 >= 5.1.0RC1)

pg_query_params -- Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden.

Beschreibung

resource pg_query_params ( resource connection, string query, array params )

resource pg_query_params ( string query, array params )

Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom SQL-Kommando können dabei Parameter übergeben werden.

pg_query_params() ist ähnlich wie pg_query(), bietet aber zusätzlich die Möglichkeit, Parameterwerte ausserhalb des SQL-Kommandos separat zu übergeben. pg_query_params() wird nur für Verbindungen zu PostgreSQL ab der Version 7.4 unterstützt und schlägt bei allen niedrigeren Versionen fehl.

Falls irgendwelche Parameter übergeben wurden, werden diese in query als $1, $2 usw. referenziert. Im Array params werden die aktuellen Parameterwerte übergeben. Der Wert NULL in diesm Array repräsentiert den SQL-Wert NULL.

Der Hauptvorteil von pg_query_params() gegenüber pg_query() liegt darin, dass Parameterwerte vom SQL-Kommando getrennt übergeben werden können und damit das fehlerträchtige und lästige Maskieren und Setzen von Anführungszeichen vermieden werden kann. Im Unterschied zu pg_query() ist bei pg_query_params() nur ein einziges SQL-Kommando erlaubt. (Es können auch Semikolons enthalten sein, aber nicht mehr als ein nichtleeres Kommando.)

Parameter Liste

connection

PostgreSQL Verbindungkennung. Falls connection nicht angegeben wurde, wird die zuletzt mit pg_connect() oder pg_pconnect() geöffnete Verbindung benutzt.

query

Die parametrisierte Abfrage. Diese darf nur ein einziges SQL-Kommando enthalten (mehrere Kommandos, durch Semikolon getrennt, sind nicht zulässig). Falls Parameter übergeben werden, werden sie als $1, $2, ... referenziert.

params

Ein Array mit Parameterwerten, mit denen die Platzhalter $1, $2 usw. in der ursprünglichen vorbereiteten Abfrage ersetzt werden. Die Anzahl der Elemente dieses Arrays muss mit der Anzahl der Platzhalter übereinstimmen.

Rückgabewerte

Bei Erfolg wird eine Ergebniskennung zurückgegeben, ansonsten FALSE.

Beispiele

Beispiel 1. pg_query_params() benutzen:

<?php
// Verbindung zu einer Datenbank namens "mary" aufbauen
$dbconn = pg_connect("dbname=mary");

// Alle Shops mit dem Namen Joe's Widgets finden. Beachten Sie, dass es
// nicht nötig ist, den String "Joe's Widgets" zu maskieren.
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Vergleich mit pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Siehe auch

pg_query()