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


(PHP 4 >= 4.2.0, PHP 5)

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

Описание

string pg_escape_bytea ([ resource $connection ], string $data )

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

Ресурс подключения к базе данных 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}')");
?>

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

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