PHP. Не могу прочесть из Firebird текстовый BLOB(sub_type=1)

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
gtb68
Сообщения: 2
Зарегистрирован: 20 июн 2007, 08:01

PHP. Не могу прочесть из Firebird текстовый BLOB(sub_type=1)

Сообщение gtb68 » 20 июн 2007, 08:19

Пишу на PHP. Есть таблица, в ней поле CONTENTS с текстовым BLOB (BLOB SUB_TYPE 1 CHARACTER SET WIN1251). Нужно получить его содержимое. Делаю:

Код: Выделить всё

    $sql       = "select CONTENTS from letters";
    $result    = ibase_query($dbh,$sql);
    $data      = ibase_fetch_object($result);
    $blob_data = ibase_blob_info($data->CONTENTS);
    $blob_hndl = ibase_blob_open($data->CONTENTS);
    echo ibase_blob_get($blob_hndl, $blob_data[0]); 
Выдает ошибки:
ibase_blob_info() [function.ibase-blob-info]: Unrecognized BLOB ID
ibase_blob_open() [function.ibase-blob-open]: String is not a BLOB ID
ibase_blob_get(): supplied argument is not a valid Interbase blob resource

Если делаю

Код: Выделить всё

echo data->CONTENTS
то на экране получаю 0x %I не зависимо от содержания поля.
При использовании ibase_fetch_assoc опять же результатом является 0x %I.
Пробовал

Код: Выделить всё

ibase_blob_echo($data->CONTENTS);
Выдает ibase_blob_echo() [function.ibase-blob-echo]: Unrecognized BLOB ID
В инете по этому делу весьма скудно, везде похожие примеры, может дело в php.ini? Но там про интербейсовские блобы ничего нет... Может дело в том, что PHP и Apach виндовые? Уже не знаю, линуксовый сервак загружен сильно, не хочется туда еще и firebird тащить... Подскажите как получить текст из BLOB

Софт: Аpache/2.2.3(Win32), PHP5.2.2, Firebird 1.5, OS Windows.[/code]

gtb68
Сообщения: 2
Зарегистрирован: 20 июн 2007, 08:01

Сообщение gtb68 » 20 июн 2007, 10:40

Cпасибо, уже нашел.
Помог вариант base_fetch_object($result,IBASE_TEXT)

Ответить