pg_prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_prepare — Надсилає запит на створення параметризованого SQL виразу і чекає на його завершення
Опис
pg_prepare(PgSql\Connection $connection = ?, string $stmtname, string $query): PgSql\Result|false
pg_prepare() створює заготівлю SQL вирази на сервері для подальшого запуску функціями pg_execute() або pg_send_execute(). Це дозволяє багаторазово виконувати один раз створені запити з різними параметрами . pg_prepare() підтримується PostgreSQL версії 7.4 та вище. Функція не працюватиме з серверами ранніх версій.
Функція створює заготівлю SQL запиту під назвою stmtname
і тілом query
, який повинен містити один SQL вираз . stmtname
може бути порожнім рядком, тоді буде створено безіменну заготівлю. Якщо якась безіменна заготовка вже визначена, вона буде замінена на нову автоматично. В інших випадках збіг імен нової та існуючої в даній сесії заготовок призведе до помилки. Якщо в query
будуть передаватися параметри, вони замінять псевдозмінні $1, $2 і т.д. під час передачі запиту.
Подібні заготівлі запитів можна також робити за допомогою SQL-команди PREPARE
(але pg_prepare() більш гнучка, оскільки вимагає суворої типізації своїх параметрів). Важливо, що у PHP немає функцій видалення підготовлених SQL-выражений, цього використовуйте команду SQL DEALLOCATE
Список параметрів
connection
Екземпляр PgSql\Connection. Якщо параметр connection
не вказано, буде вибрано стандартне з'єднання. Стандартне з'єднання — це останнє з'єднання, яке встановила функція pg_connect() або pg_pconnect()
Увага
Починаючи з версії PHP 8.1.0, використання стандартного з'єднання застаріло.
stmtname
Ім'я заготовки, що створюється. Має бути унікальним у межах сесії. Якщо встановлено порожній рядок, буде створено безіменний SQL вираз. При цьому він перезапише вже існуючий безіменний вираз, визначений раніше.
query
Параметризований SQL-запит. Повинен містити лише один вираз (кілька виразів розділених крапкою з комою не підтримуються). Якщо в запит будуть передаватися параметри, вони замінять псевдозмінні $1, $2 і т.д.
Значення, що повертаються
Екземпляр PgSql\Result у разі успішного виконання або **false
**в случае возникновения ошибки.
список змін
Версия | Опис |
---|---|
8.1.0 | Повертає екземпляр PgSql\Result; раніше повертався ресурс (resource |
8.1.0 | Параметрconnection тепер чекає екземпляр PgSql\Connection; раніше очікувався ресурс (resource |
Приклади
Приклад #1 Приклад використання pg_prepare()****
Loading...
Дивіться також
- pg_execute() - Запускає виконання раніше підготовленого параметризованого запиту та чекає результату
- pg_send_execute() - Запускає попередньо підготовлений SQL-запит та передає йому параметри; не чекає результату, що повертається