Re: Store base64 in database. Use bytea ortext?

Поиск
Список
Период
Сортировка
От rsmogura
Тема Re: Store base64 in database. Use bytea ortext?
Дата
Msg-id 6e608e359f708e29e7e46cd0e9afe1a8@mail.softperience.eu
обсуждение исходный текст
Ответ на Re: Store base64 in database. Use bytea or text?  (Andre Lopes <lopes80andre@gmail.com>)
Список pgsql-general
 Hi,

 In means of database, it is impossible. If you want to cache, add
 version or last modified column, then ask for changes and cache data
 locally.

 Kind regards,
 Radosław Smogura
 http://softperience.eu

 On Fri, 28 Jan 2011 13:32:31 +0000, Andre Lopes wrote:
> Hi,
>
> Another question about this subject.
>
> It is possible to cache this images from the database? In the future
> I
> will need to cache the pictures.
>
> If you have any knowledge about this, please give me a clue.
>
> Best Regards,
>
>
>
>
> On Wed, Jan 26, 2011 at 2:09 PM, Bill Moran
> <wmoran@potentialtech.com> wrote:
>> In response to Dmitriy Igrishin <dmitigr@gmail.com>:
>>
>>> 2011/1/26 Andre Lopes <lopes80andre@gmail.com>
>>>
>>> > Thanks for the reply.
>>> >
>>> > I will mainly store files with 100kb to 250kb not bigger than
>>> this.
>>> >
>>> > PQescapeByteaConn is not available in a default installation of
>>> > PostgreSQL? My hosting account hava a standard installation of
>>> > PostgreSQL. There are other options for escaping binary files?
>>> >
>>> > Best Regards,
>>> >
>>> PQescapeByteConn is a function of libpq - native C client library.
>>> In you case (PHP) you should use its functions to encode binary
>>> data before including it into a query (e.g., in base64) and use
>>> built-in decode() function of Postgres:
>>> -- Pseudo-code
>>> INSERT INTO img (dat) VALUES (decode(BASE64_INPUT_FROM_PHP,
>>> 'base64'));
>>>
>>> where dat column of table img of type bytea.
>>
>> More specifically:
>>
>> $query = "INSERT INTO image_data (bytea_field) VALUES ('" .
>>         pg_escape_bytea($binary_data) . "')";
>> pg_query($query);
>>
>> And to get it back out:
>> $query = "SELECT bytea_field FROM image_data";
>> $rs = pg_query($query);
>> $row = pg_fetch_assoc($rs);
>> $binary_data = pg_unescape_bytea($row['bytea_field']);
>>
>> (note that I may have omitted some steps for clarity)
>>
>> DO NOT use parametrized queries with PHP and bytea (I hate to say
>> that,
>> because parametrized fields are usually a very good idea).  PHP has
>> a
>> bug that mangles bytea data when pushed through parametrized fields.
>>
>> PHP bug #35800
>>
>> --
>> Bill Moran
>> http://www.potentialtech.com
>> http://people.collaborativefusion.com/~wmoran/
>>


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

Предыдущее
От: Andre Lopes
Дата:
Сообщение: Re: Store base64 in database. Use bytea or text?
Следующее
От: Steve White
Дата:
Сообщение: Re: How best to load modules?