pg_escape_bytea
(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.
Возвращаемые значения
Возвращает строку, в которой экранированы все необходимые символы.
Примеры
Пример #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() - Экранирование спецсимволов в строке запроса