как положить графический файл в базу

Guge

Guest
как положить графический файл в базу

- оформляю свой сайт, PHP/MySQL
- в базу надо положить набор карточек
- одно из полей в карточке картинка (до 1.5 мб), под нее в таблице заведен BLOB

– как будет выглядеть запрос в базу (синтаксис)?

… самое близкое, что смог найти сам – это LOAD DATA INFILE, но это для txt
 

Фанат

oncle terrible
Команда форума
точно так же, как и любой другой.

правда смысл класть картинки в базу под большим вопросом
 

ForJest

- свежая кровь
PHP:
     function str_binary($str)
     {
          $len = strlen($str);
          $res = '';
          for ($i=0; $i < $len; $i++)
          {
               $res .= str_pad(dechex(ord(substr($str, $i, $i+1))), 2, 0, STR_PAD_LEFT);
          }
          return '0x'.$res;
     }
Результат этой функции подставляешь в INSERT. Это binary формат хранения строки.
И почитай
http://phpclub.ru/talk/showthread.php?s=&threadid=25882
 

Фанат

oncle terrible
Команда форума
ForJest
а можно спросить - зачем нужен этот binary формат?
 

ForJest

- свежая кровь
Фанат
Вопрос так даже не стоит - зачем он нужен. Он есть. Им уже можно пользоваться. В большинстве СУБД, не только в MySQL.
 

Фанат

oncle terrible
Команда форума
хорошо, не стоит.
но ты можешь на него ответить?
 

ForJest

- свежая кровь
Фанат
Могу. Но ты уточни - нужен кому? Разработчикам MySQL, топик-стартеру, мне лично или тебе?

-~{}~ 04.09.05 23:33:

Рефакторинг приведённого выше кода:
PHP:
function str_binary($str) 
{ 
     return '0x'.bin2hex($str); 
}
 

Фанат

oncle terrible
Команда форума
совершенно не нужная операция.
всё делается стандартными средствами
 

ForJest

- свежая кровь
Фанат
Это штатная возможность и штатные же средства - бинарный формат строки.
 

Фанат

oncle terrible
Команда форума
в мускуле милион штатных средств.
вопрос не в том, штатное оно или нет, а в том, что оно бессмысленное.

всё прекрасно кладётся стандартными средствами работы с БД.
то есть, никаких специальных исключений, особенного кода, для бинарных файлов делать не нужно.
 

ForJest

- свежая кровь
Фанат
Не нужно кому? Всем? Тебе или мне? :).
В том же pma используется бинарный формат, что совсем, совсем не мешает ему быть хорошим продуктом :).
Ты кстати не подумай, что я с тобой несогласен. С моей точки зрения все строковые данные должны передаваться в мукул в бинарном формате - таким образом мы избавляемся от необходимости писать эти нудные одинарные кавычки.
К тому же бинарный формат как никто другой защищает от SQL-иньекций. Никаких тебе комментариев или UNION - именно в этом случае происходит настоящее и самое лучше отделение SQL от собственно данных.
К тому же это кросс-платформенное решение, которые будет работать со всеми СУБД.
 
Сверху