Экранировать литерал при вставке в текстовое поле

# pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7, PHP 8)

pg_escape_literal — Экранировать литерал при вставке в текстовое поле

### Описание

function pg_escape_literal(PgSql\Connection `$connection` = ?, string `$string`): string|false

Функция 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 выбор функцией соединения по умолчанию устарел.

`string`

  Строка (string), содержащая текст для экранирования.

### Возвращаемые значения

Строка (string), содержащая экранированный текст, или `false` в случае ошибки.

### Список изменений

Версия | Описание
--- | ---
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})");
    ?>

### Смотрите также

- pg_escape_identifier() - Экранирует идентификатор перед вставкой в текст SQL-инструкции
- pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
- pg_escape_string() - Экранирование спецсимволов в строке запроса

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open