(PHP 5 >= 5.4.4, PHP 7, PHP 8)
pg_escape_literal — Экранировать литерал при вставке в текстовое поле
Функция pg_escape_literal() экранирует литерал для запроса базы данных PostgreSQL. Она возвращает экранированный литерал в формате PostgreSQL. pg_escape_literal() добавляет кавычки до и после данных. Пользователи не должны добавлять кавычки. Рекомендуется использовать эту функцию вместо pg_escape_string(). Если тип столбца - bytea, вместо него следует использовать pg_escape_bytea(). Для экранирования идентификаторов (например, таблицы, имён полей) необходимо использовать pg_escape_identifier().
Замечание:
Эта функция имеет внутренний код экранирования и может также использоваться с PostgreSQL 8.4 или младшей версии.
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_literal()
<?php
// Подключение к базе данных
$dbconn = pg_connect('dbname=foo');
// Чтение из текстового файла (содержащий апострофы и обратные косые черты)
$data = file_get_contents('letter.txt');
// Экранирование текстовых данных
$escaped = pg_escape_literal($data);
// Вставка их в базу данных. Обратите внимание, что вокруг {$escaped} нет кавычек
pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>