pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_bytea Экранирует спецсимволы в строке для вставки в поле типа bytea

Описание

pg_escape_bytea(PgSql\Connection $connection = ?, string $data): string

pg_escape_bytea() экранирует спецсимволы в строке с данными типа bytea. Возвращает экранированную строку.

Замечание:

При выборке SQL-функцией SELECT данных типа bytea PostgreSQL возвращает значения в восьмеричной системе счисления с префиксом '\' (такие как \032). Пользователю необходимо вручную преобразовывать их в двоичный формат.

Функция поддерживается PostgreSQL версии 7.2 и выше. Для версий 7.2.0 и 7.2.1 значения должны быть преобразованы к типу bytea, когда включена мультибайтовая поддержка. Тогда как INSERT INTO test_table (image)VALUES ('$image_escaped'::bytea); в PostgreSQL 7.2.2 и выше не требует каких-либо преобразований. Исключение составляет случай, когда клиентская (frontend) кодировка не соответствует серверной (backend). При этом возникает ошибка мультибайтового потока, и пользователь должен привести данные к типу bytea, чтобы её избежать.

Список параметров

connection

Экземпляр класса PgSql\Connection. Если параметр connection не указали, функция выберет соединение по умолчанию. Соединение по умолчанию — это последнее соединение, которое установила функция pg_connect() или pg_pconnect().

Внимание

Начиная с версии PHP 8.1.0 использование соединения по умолчанию устарело.

data

Строка, содержащая двоичные данные в виде текста, которые требуется поместить в поле типа bytea.

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

Возвращает строку, в которой экранированы все необходимые символы.

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

Версия Описание
8.1.0 Параметр connection теперь ожидает экземпляр класса PgSql\Connection; раньше параметр ждал ресурс (resource).

Примеры

Пример #1 Пример использования pg_escape_bytea()

<?php
// Подключение к базе данных
$dbconn = pg_connect('dbname=foo');

// Чтение бинарного файла
$data = file_get_contents('image1.jpg');

// Экранирование спецсимволов в строке с двоичными данными
$escaped = pg_escape_bytea($data);

// Вставка в таблицу базы данных
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

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

  • pg_unescape_bytea() - Убирает экранирование двоичных данных типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса