pg_query_params
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_query_params — Посилає параметризований запит на сервер, параметри передаються окремо від тексту запиту SQL
Опис
pg_query_params(PgSql\Connection $connection = ?, string $query, array $params): PgSql\Result|false
Посилає параметризований запит на сервер і чекає на результат. Параметри надсилаються окремо від рядка запиту.
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-команди.)
Список параметрів
connection
Екземпляр PgSql\Connection. Якщо параметр connection
не вказано, буде вибрано стандартне з'єднання. Стандартне з'єднання — це останнє з'єднання, яке встановила функція pg_connect() або pg_pconnect()
Увага
Починаючи з версії PHP 8.1.0, використання стандартного з'єднання застаріло.
query
Параметризований запит SQL. Повинен містити лише один вираз (кілька виразів розділених крапкою з комою не підтримуються). Якщо в запит будуть передаватися параметри, вони замінять псевдозмінні $1, $2 і т.д.
Користувацькі дані завжди повинні передаватися як параметри, і не передаватися в рядок запиту безпосередньо, де вони можуть призвести до можливих атак через SQL-ін'єкції і призводить до помилок, якщо дані містять лапки. Якщо з якихось причин ви не можете використовувати параметр, переконайтеся, що дані користувача правильно екрановані
params
Масив значень параметрів запиту для заміни псевдозмінних $1, $2 і т.д. у вихідному рядку запиту. Кількість елементів масиву має точно збігатися з кількістю псевдозмінних.
Значення призначені для bytea
полів не можна передавати у параметрах. Використовуйте функцію pg_escape_bytea() або функції великих об'єктів.
Значення, що повертаються
Екземпляр PgSql\Result у разі успішного виконання або **false
**в случае возникновения ошибки.
список змін
Версия | Опис |
---|---|
8.1.0 | Повертає екземпляр PgSql\Result; раніше повертався ресурс (resource |
8.1.0 | Параметрconnection тепер чекає екземпляр PgSql\Connection; раніше очікувався ресурс (resource |
Приклади
Приклад #1 Приклад використання pg_query_params()****
Loading...
Дивіться також
- pg_query() - Виконує запит