Re: ByteA for binary data?

From: "Thomas T(dot) Thai" <tom(at)minnesota(dot)com>
To: Robert Myers <ccrider(at)whiterose(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ByteA for binary data?
Date: 2002-02-25 03:02:33
Message-ID: Pine.NEB.4.43.0202242058430.24987-100000@ns01.minnesota.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Sun, 24 Feb 2002, Robert Myers wrote:

> I'm having a problem with the bytea datatype. I'm trying to store image
> data inside the field in a table, and php seems to only be sending a small
> portion of the image into the database.
>
> I'm not sure how I should approach storing image data inside of Postgres.
>
> I really need to improve the management of my images.
>
> Has anyone else done this without the benefit of the LO support?
>
> I've read the available documentation on LO and bytea, and both seem to
> have troubles, is this something that will be fixed in a future
> release? I'm currently running 7.2.

to use bytea with php, encode the image data with escByteA() below before
storing it in your db. then when you retrieve the data, use php's
stripcslashes(). i've tested this on various image data and they all work
just fine.

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. tomATminnesota.com
*/
$search = array(chr(92), chr(0), chr(39));
$replace = array('\\\134', '\\\000', '\\\047');
$binData = str_replace($search, $replace, $binData);
return $binData;
}

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Peter Lacey 2002-02-25 03:33:08 Re: Starting Postmaster
Previous Message Doug McNaught 2002-02-25 03:00:12 Re: ByteA for binary data?