Web студия "GrandView"
  Главная   Написать Контакты
   
   
О проекте
Руководство php
 

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea --  Escape a string for insertion into a bytea field

Описание

string pg_escape_bytea ( string data )

pg_escape_bytea() escapes string for bytea datatype. It returns escaped string.

Замечание: When you SELECT a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032). Users are supposed to convert back to binary format manually.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must be cast when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need a cast. The exception is when the client and backend character encoding does not match, and there may be multi-byte stream error. User must then cast to bytea to avoid this error.

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

data

A string containing text or binary data to be inserted into a bytea column.

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

A string containing the escaped data.

Примеры

Пример 1. pg_escape_bytea() example

<?php
 
// Connect to the database
 
$dbconn = pg_connect('dbname=foo');
 
 
// Read in a binary file
 
$data = file_get_contents('image1.jpg');
 
 
// Escape the binary data
 
$escaped = pg_escape_bytea($data);
 
 
// Insert it into the database
 
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

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

pg_unescape_bytea()
pg_escape_string()



add a note add a note User Contributed Notes
pg_escape_bytea
Mocha
07-Aug-2003 05:20
to unescape_bytea use stripcslashes(). If you need to escape bytea and don't have pg_escape_bytea() function then use:

function escByteA($binData) {
  /**
   * \134 = 92 = backslash, \000 = 00 = NULL, \047 = 39 = Single Quote
   *
   * str_replace() replaces the searches array in order. Therefore, we must
   * process the 'backslash' character first. If we process it last, it'll
   * replace all the escaped backslashes from the other searches that came
   * before.
   */
  $search = array(chr(92), chr(0), chr(39));
  $replace = array('\\\134', '\\\000', '\\\047');
  $binData = str_replace($search, $replace, $binData);
  return $binData;
  //echo "<pre>$binData</pre>";
  //exit;
}
php at tobias dot olsson dot be
17-Aug-2002 09:56
if you need to change back bytea from the db to normal data, this will do that:

function pg_unescape_bytea($bytea) {
return eval("return \"".str_replace('$', '\\$', str_replace('"', '\\"', $bytea))."\";");
}

// use like this
$rs = pg_query($conn, "SELECT image from images LIMIT 1");
$image = pg_unescape_bytea(pg_fetch_result($rs, 0, 0));

/Tobias

pg_escape_string> <pg_end_copy
Last updated: Sat, 27 Jan 2007
 
 
Новости
11 июля 2007
Сайт запущен
© 2007 info@grandviewstudio.com

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 324

Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/sites/grandviewstudiocom/www/65f67d67a94ad980786580ae69e11c07/sape.php on line 330
Z058440144362 Z348613067571