pg_query_params
Sendet ein Kommando zum Server und wartet seine Ausführung ab. Getrennt vom
SQL-Kommando können dabei Parameter übergeben werden
&reftitle.description;
PgSql\Resultfalsepg_query_paramsPgSql\Connectionconnectionstringqueryarrayparams
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. Der gleiche
Parameter darf mehrmals in query auftauchen; in
diesem Fall wird der selbe Wert verwendet. Im Array
params werden die aktuellen Parameterwerte
übergeben. Der Wert &null; in diesem 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.)
&reftitle.parameters;
connection
&pgsql.parameter.connection-with-unspecified-default;
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.
Anwenderdaten sollten immer als Parameter übergeben werden, und nicht
in die Abfragezeichenkette interpoliert werden, wo sie mögliche SQL-Injection-Angriffsvektoren
bilden und Bugs einführen, wenn die zu behandelnden Daten
Anführungszeichen enthalten. Wenn aus irgendeinem Grund Parameter nicht
verwendet werden können, ist sicherzustellen, dass Werte ordnungsgemäß maskiert sind.
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.
Werte, die für bytea Felder vorgesehen sind, werden
nicht als Parameter unterstützt. Statt dessen sind
pg_escape_bytea oder die Funktionen für große
Objekte zu verwenden.
&reftitle.returnvalues;
Bei Erfolg wird eine PgSql\Result-Instanz zurückgegeben.
&return.falseforfailure;
&reftitle.changelog;
&Version;&Description;
&pgsql.changelog.return-result-object;
&pgsql.changelog.connection-object;
&reftitle.examples;
pg_query_params-Beispiel
]]>
&reftitle.seealso;
pg_query