Re: [SQL] bytea or large object

Поиск
Список
Период
Сортировка
От Frank Joerdens
Тема Re: [SQL] bytea or large object
Дата
Msg-id 20020404090001.A28086@superfly.archi-me-des.de
обсуждение исходный текст
Ответ на Re: bytea or large object  (Joe Conway <mail@joeconway.com>)
Ответы Re: [SQL] bytea or large object  (Martín Marqués <martin@bugs.unl.edu.ar>)
Список pgsql-php
On Wed, Apr 03, 2002 at 08:12:45AM -0800, Joe Conway wrote:
> Jean-Christophe FABRE wrote:
>  >
>  > Hi,
>  >
>  > I would like to store .pdf files in a database, which is accessed through
>  > a PHP interface. which is the best way to store binary data? -
>  > bytea? (with the tricky handling of escape chars) - large objects?
>  >
>  > thanks
>  >
>  > JC
>  >
>  > PS: I didn't found any example of scripts using bytea in PHP, does
> someone
>  > has some?
>
> Here's an escape script that was sent to me by Thomas T. Thai.
>
> function escByteA($binData) {
>   /**
>    * \134 = 92 = backslash, \000 = 00 = NULL, \047 = 39 = Single Quote
>    *
>    * str_replace() replaces the searches array in order. 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;
> }
>
> There is also a function built in to PHP 4.1.2, available if you're
> using PostgreSQL 7.2, called pg_escape_bytea.

AFAIK you need PHP >= 4.2 to use pg_escape_bytea which is currently
available as rc1, i.e. not released. I tried pg_escape_bytea with rc1
and it segfaults (the process crashes). The function above works fine
though.

Regards, Frank

В списке pgsql-php по дате отправления:

Предыдущее
От: Joe Conway
Дата:
Сообщение: Re: bytea or large object
Следующее
От: "eyou321"
Дата:
Сообщение: ADV: Harvest lots of Email addresses quickly