(PHP 5 >= 5.4.4, PHP 7, PHP 8)
pg_escape_identifier — Экранирует идентификатор перед вставкой в текст SQL-инструкции
Функция pg_escape_identifier() экранирует названия таблиц, полей и других идентификаторов в SQL-инструкциях перед отправкой запроса к базе данных. Функция pg_escape_identifier() экранирует идентификаторы по правилам PostgreSQL-сервера — обрамляет двойными кавычками — и возвращает заэкранированную строку. Оставлять в SQL-инструкции незаэкранированные идентификаторы или добавлять двойные кавычки вручную — небезопасно. Строковые, числовые, логические и другие SQL-литералы внутри инструкции, кроме типа bytea, экранируют функцией pg_escape_literal() или pg_escape_string(). Поля с типом bytea экранируют функцией pg_escape_bytea().
connectionЭкземпляр
класса PgSql\Connection.
Функция выберет соединение по умолчанию, если параметр connection не указали.
Соединение по умолчанию — последнее соединение, которое установила функция pg_connect()
или pg_pconnect().
Начиная с PHP 8.1.0 выбор функцией соединения по умолчанию устарел.
dataТекстовая строка (string), которую требуется заэкранировать.
Функция возвращает строку (string) с заэкранированными данными.
| Версия | Описание |
|---|---|
| 8.1.0 |
Параметр connection теперь принимает
объект PgSql\Connection; раньше параметр принимал тип resource.
|
Пример #1 Пример экранирования идентификатора функцией pg_escape_identifier()
<?php
// Устанавливаем соединение с базой данных
$dbconn = pg_connect('dbname=foo');
// Экранируем название таблицы
$escaped = pg_escape_identifier($table_name);
// Выбираем строки из таблицы $table_name
pg_query("SELECT * FROM {$escaped};");