Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysql текстовые данные из поля blob 
V
    Опции темы
alligator
Дата 29.11.2011, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Есть база данных где данные лежать в поле блоб вот пример одного поля:\

220100000026270A

Мне нужно получить текстовую строку из этого поля....... подскажите пожалуйста как сделать правильно?

Это сообщение отредактировал(а) alligator - 30.11.2011, 18:55
PM MAIL   Вверх
$дмитрий
Дата 29.11.2011, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 3
Всего: 45



По идеи так
Код

CONVERT(column USING utf8)

PM MAIL   Вверх
alligator
Дата 30.11.2011, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



не получилось, забыл написать что тип бд таблицы в mysql innodb поле blob незнаю как расшифровать
PM MAIL   Вверх
$дмитрий
Дата 30.11.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 3
Всего: 45



Прикрепи дамп
PM MAIL   Вверх
alligator
Дата 1.12.2011, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



дамп sql

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  Noname1.sql 32,43 Kb
PM MAIL   Вверх
alligator
Дата 1.12.2011, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



скрин

Присоединённый файл ( Кол-во скачиваний: 14 )
Присоединённый файл  01.12.png 140,52 Kb
PM MAIL   Вверх
$дмитрий
Дата 1.12.2011, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 19.6.2004

Репутация: 3
Всего: 45



Ознакомился с дампом. MySQL, в данном случаи, и так возвращает поле как читаемый текст, и проблема не в blob и не в innodb
Вначале подумалось что это HEX, попробовал перевести в другую систему счисления, не получилось. Видимо данные при вставке шифруются каким-то алгоритмом, нужно посмотреть действительно ли это так

Это сообщение отредактировал(а) $дмитрий - 1.12.2011, 15:41
PM MAIL   Вверх
alligator
Дата 1.12.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



вот я и думаю как это расшифровать, манипуляции с bin2hex и другими пробовал результат 0, незнаю даже куда копать.....
PM MAIL   Вверх
alligator
Дата 1.12.2011, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Нашел, не пойму только как реализовать на пхп пока что
Код

CREATE DEFINER=`root`@`localhost` FUNCTION `getformatedcard`(typecard INTEGER(11), cardnumber BLOB) RETURNS blob
begin
declare formatedcard blob;
    set formatedcard = '';
    case typecard
    when 1
    then
        set formatedcard = concat(lpad(conv(substr(cardnumber, 11, 2), 16, 10), 3, 0),
                                  '-',
                                  lpad(conv(substr(cardnumber, 13, 4), 16, 10), 5, 0));
    when 2
    then
        set formatedcard = lpad(conv(substr(cardnumber, 11, 6), 16, 10), 10, 0);
    else
        set formatedcard = concat(substr(cardnumber, 1, 2),
                                  ' ',
                                  substr(cardnumber, 3, 2),
                                  ' ',
                                  substr(cardnumber, 5, 12));
    end case;
    return formatedcard;
end

PM MAIL   Вверх
alligator
Дата 1.12.2011, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: нет
Всего: 1



Решение найдено, всем спасибо!
если кому интересно
вот код
Код

$card_string='4701000000FC5F49';

$n3=str_pad(hexdec(substr($card_string,10,-4)), 3, "0", STR_PAD_LEFT);
$n5=hexdec(substr($card_string,-4));
print $n3."-".$n5;


Это сообщение отредактировал(а) alligator - 2.12.2011, 00:03
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.