| imho.ws |
![]() |
|
|
|
# 1 |
|
Full Member
Регистрация: 16.09.2003
Сообщения: 793
![]() ![]() ![]() ![]() ![]() |
PHP MySQL
расскажите как картинку можно сохранить в MYSQL
картинки будут закачиватся на сарвак и м этим я уже разобрался... ну имя файла (и остальные данные) достаю так: $filename = $_FILES['userfile']['tmp_name']; во только не знаю какой SQL запрос создать? |
|
|
|
|
# 4 | |
|
Технический администратор
Регистрация: 01.03.2003
Адрес: Киев, Украина
Сообщения: 327
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Из соображений производительности.
__________________
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности. |
|
|
|
|
|
# 7 | |
|
Технический администратор
Регистрация: 01.03.2003
Адрес: Киев, Украина
Сообщения: 327
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Но есть куча минусов: 1. База НЕ работает быстрее файлов. База сама написана на файлах, как понимаешь. Чтобы соединится с базой, нужно открывать сокетное соединение, отправлять запрос серверу баз данных, потом получать от него ответ и только после этого тебе будут доступны те самые данные, которые ты запрашивал. Это не так заметно, если сервер баз данных и веб-сервер - это одна машина. Но не у всех хостеров это именно так. 2. Новички путаются с addslashes и magic_quotes_gpc, ругаются, почему картинки бьются при вставке в базу данных. 3. Картинки мало просто положить в базу данных, их ещё надо выводить... не раз уже встречал уникумов которые писали что-то типа PHP код:
![]() На самом деле, чтобы вытащить картинку из базы данных нужно опять же подключится к СУБД, послать туда запрос, получить назад картинку (через сокет! Не забывайте, что хостер может отделить СУБД от веб-сервера и поставить их на разных компах), отправить соответствующие заголовки, желательно с поддержкой кеширования (а все ли новички знают, какие именно заголовки отправлять?) и только после этого вывести саму картинку. И ссылатся на неё как <IMG SRC="picture.php?id=18"> Имхо, не самый удобный способ, в первую очередь из соображений производительности.
__________________
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности. |
|
|
|
|
|
# 10 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
ИМХО оптимальней всего вынести доступ к картинкам в отдельный data access object, и вести всю работу только через него. Хочешь хранить картинки в базе - хранишь. Возникают в дальнейшем проблемы с производительностью - меняешь _только_ dao на работы с картинками в файловой системе, а не БД. При нормальной реализации dao такая замена будет прозрачна для всех остальных классов.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 12 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
shuron
Не только и не столько добавление, сколько наоборот - получение уже добавленных.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|
|
|
# 16 |
|
Full Member
Регистрация: 16.09.2003
Сообщения: 793
![]() ![]() ![]() ![]() ![]() |
короче тут я всё сделал - работает вроде не плохо.
Класс вышел только для upload. для добавлени скриптик и для получения сой скриптик. Второму просто по GET передаю id нужной картинки. Ну а теперь у меня другой вопрос по MySQL но это не здесь, рядом смотрите Добавлено через 4 минуты: всем спасибо! |
|
|
|
|
# 17 |
|
Технический администратор
Регистрация: 01.03.2003
Адрес: Киев, Украина
Сообщения: 327
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
RaZEr
Ну вот смотри. Решил ты хранить картинки в базе данных, написал ты такой класс для их отображения: PHP код:
![]() PHP код:
ЗЫ: примеры очень упрощенные, не стоит использовать их в реальных ситуациях ![]() Например, второй класс поддерживает только джипеги...
__________________
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности. |
|
|
|
|
# 18 |
|
::VIP::
Регистрация: 12.11.2002
Адрес: Nicosia, Cyprus
Сообщения: 1 285
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Также для получения полноценного класса сюда же стоит добавить добавление-редактирование-удаление картинок, чтобы вся работа с ними была сосредоточена в одном классе.
__________________
"If people only knew how hard I work to gain my mastery, it wouldn't seem so wonderful at all." Michelangelo Buonarroti |
|
|