(PHP 4 >= 4.2.0, PHP 5, PHP 7)
pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
$connection
], string $data
) : stringpg_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
Ресурс подключения к базе данных PostgreSQL. Если параметр
connection
не задан, будет использовано
подключение по умолчанию - последнее соединение, открытое функцией
pg_connect() или pg_pconnect().
data
Строка, содержащая двоичные данные в виде текста, которые требуется поместить в поле типа bytea.
Возвращает строку, в которой экранированы все необходимые символы.
Версия | Описание |
---|---|
5.2.0 | Добавлен аргумент connection |
Пример #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}')");
?>