pg_query_params
Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
&reftitle.description;
PgSql\Resultfalsepg_query_paramsPgSql\Connectionconnectionstringqueryarrayparams
Посылает параметризованный запрос на сервер и ждёт результат.
Параметры передаются отдельно от строки запроса.
pg_query_params подобна функции pg_query,
но предоставляет дополнительный функционал: параметры запроса можно передавать
отдельно от строки запроса. pg_query_params поддерживается
на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать
с серверами ранних версий.
Если используются параметры params, они заменяют
псевдопеременные $1, $2 и т.д. в строке запроса query.
Один и тот же параметр может быть указан больше одного раза в query;
в этом случае будут использованы одинаковые значения. params определяют
текущие значения параметров. Значение &null; в массиве параметров будет означать
SQL NULL в запросе.
Главное преимущество pg_query_params перед
pg_query заключается в том, что значения параметров могут
передаваться отдельно от строки запроса query. Это даёт
возможность избежать утомительную и подверженную ошибкам процедуру экранирования
спецсимволов и заключения значений в кавычки. Однако, в отличие от
pg_query, эта функция поддерживает только один SQL запрос
в передаваемой строке. (Он может содержать точку с запятой, но не более одной
непустой SQL-команды.)
&reftitle.parameters;
connection
&pgsql.parameter.connection-with-unspecified-default;
query
Параметризованный SQL запрос. Должен содержать только одно выражение
(несколько выражений разделённых точкой с запятой не поддерживаются).
Если в запрос будут передаваться параметры, то они заменят
псевдопеременные $1, $2 и т.д.
Пользовательские данные всегда должны передаваться как параметры,
и не передаваться в строку запроса напрямую, где они могут привести
к возможным атакам через
SQL-инъекции
и приводит к ошибкам, если данные содержат кавычки.
Если по каким-то причинам вы не можете использовать параметр, убедитесь, что
пользовательские данные правильно экранированы.
params
Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д.
в исходной строке запроса. Количество элементов массива должно точно совпадать с
количеством псевдопеременных.
Значения предназначенные для bytea полей нельзя передавать в параметрах.
Используйте функцию pg_escape_bytea или функции для больших объектов.
&reftitle.returnvalues;
Экземпляр PgSql\Result в случае успешного выполнения&return.falseforfailure;.
&reftitle.changelog;
&Version;&Description;
&pgsql.changelog.return-result-object;
&pgsql.changelog.connection-object;
&reftitle.examples;
Пример использования pg_query_params
]]>
&reftitle.seealso;
pg_query