Страница 1 из 1

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

Добавлено: 20 июн 2007, 08:19
gtb68
Пишу на 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]

Добавлено: 20 июн 2007, 10:40
gtb68
Cпасибо, уже нашел.
Помог вариант base_fetch_object($result,IBASE_TEXT)