Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > работа с BLOB полями


Автор: KoLiZeI 17.3.2008, 12:16
Народ помогите! 
Почему информация их BLOB поля выводится бинарным кодом?
Как правильно делать/переносить дамп с блоб полями через phpmyadmin!? Делаю как обычно пытаюсь вывести значения выводит одной строчкой бинарника! Как это преобразовать можно? И ещё если текст в поле text бинарником записан как его нормальным вывести? 
 smile 

Автор: Feldmarschall 17.3.2008, 12:24
BLOB поля ничем абсолютно не отличаются от любых других полей.
И работа с ними ничем не отличается от работы с другими.
Разве что, тем, что в случае с другими типами полей (например datetime) начинающие программисты понимают, зачем им этот тип, а в случае с BLOB часто этот тип поля используется не по назначению.

Цитата(KoLiZeI @  17.3.2008,  12:16 Найти цитируемый пост)
Почему информация их BLOB поля выводится бинарным кодом?


Как я писал выше, информация за поля BLOB выводится точно так же, как и из полей других типов - выводится ровно то, что было записано. Что записал - то и выводится. Если записал "бинарный код" (что бы не имелось в виду под этим словом) - то он и будут выведен.

Цитата(KoLiZeI @  17.3.2008,  12:16 Найти цитируемый пост)
Делаю как обычно пытаюсь вывести значения выводит одной строчкой бинарника!


Не мог бы ты быть более подробным в своих описаниях? Что делаешь, как обычно? Что выводится одной строчкой?
А что выводит до переноса?

Цитата(KoLiZeI @  17.3.2008,  12:16 Найти цитируемый пост)
если текст в поле text бинарником записан как его нормальным вывести? 


Что ты называешь словами "текст, который зписан бинарником"?

Автор: KoLiZeI 17.3.2008, 12:29
Вся информация из блоба у меня выводится так 
0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f
Только этот текст горазда больше так как объем инфы там больше!
И если поле типа "text"  в котором инфа вида 0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f как её преобразовать в обычный текст?

Автор: Feldmarschall 17.3.2008, 12:39
то, что ты пишешь - это шестнадцатеричное представление информации.
в таком виде она не должна храниться в базt, а только вставляться.
то есть, при вставке у тебя почему-то запросы вида
Код

insert into table values(0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f)
поменялись на 
Код

insert into table values('0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f')

ищи - кто тебе такую подлянку сделал.

А по самой проблеме - тебе надо будет сделат дамп ещё раз, либо совсем без hex представления, либо с ним - но тогда с нормальной заливкой.

Автор: KoLiZeI 17.3.2008, 13:31
Цитата(Feldmarschall @ 17.3.2008,  12:39)
то, что ты пишешь - это шестнадцатеричное представление информации.
в таком виде она не должна храниться в базt, а только вставляться.
то есть, при вставке у тебя почему-то запросы вида
Код

insert into table values(0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f)
поменялись на 
Код

insert into table values('0x3f3f3f3f3f203f3f3f3f3f3f3f3f3f')

ищи - кто тебе такую подлянку сделал.

А по самой проблеме - тебе надо будет сделат дамп ещё раз, либо совсем без hex представления, либо с ним - но тогда с нормальной заливкой.

Точно.... Спасибо за помощь!

Автор: awers 17.3.2008, 15:01
Цитата(Feldmarschall @  17.3.2008,  13:24 Найти цитируемый пост)
BLOB поля ничем абсолютно не отличаются от любых других полей.
И работа с ними ничем не отличается от работы с другими.
Разве что, тем, что в случае с другими типами полей (например datetime) начинающие программисты понимают, зачем им этот тип, а в случае с BLOB часто этот тип поля используется не по назначению.

с каких прор? к примеру в оракле это вообще ссылка на файл в ФС и работа координально отличается с этим типом полей...

Автор: Feldmarschall 17.3.2008, 15:10
Я очень рад этому факту! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)