Forum Webscript.Ru

Общие => Базы данных => Тема начата: Tepncuxopa от 23 Ноября 2001, 16:16:53

Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 16:16:53
Можно ли хранить картинки в базе данных? Как их туда записывать и впоследствии вытаскивать?
Название: Хранение графических файлов в MySQL
Отправлено: lodevar от 23 Ноября 2001, 16:24:41
тип BLOB
Название: Хранение графических файлов в MySQL
Отправлено: Stek от 23 Ноября 2001, 16:31:00
Можно.
Вот тут как это делать
http://www.phpdevs.com/data/22/57.html
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 16:36:39
Т.е. я создаю таблицу:

create table picture (
id int(2) not null auto_increment,
picture blob,
primary key (id));

...и заполняю ее:

insert into picture values (\'1\', \' [а сюда что писать?] \');

---------------

И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 16:40:48
Цитировать
Можно.
Вот тут как это делать
http://www.phpdevs.com/data/22/57.html


Спасибо ;)
Название: Хранение графических файлов в MySQL
Отправлено: bhor от 23 Ноября 2001, 16:48:40
Цитировать
И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?

ALTER TABLE `yourtable` ADD `namecolumn` type NOT NULL
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 16:52:19
Цитировать
И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?

ALTER ....
а вообще лучше через phpMyAdmin действовать :)
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 16:53:23
bhor, спасибо ;)

Только что села за MySQL -- кое-какие знания есть, что-то прочитала в инете, но времени на обстоятельное изучение нет :(  Вот и возникает куча глупых вопросов ;)
Название: Хранение графических файлов в MySQL
Отправлено: bhor от 23 Ноября 2001, 16:59:34
Цитировать
а вообще лучше через phpMyAdmin действовать

Да да тоже советую намного быстрее и удобнее. ;)

Цитировать
Только что села за MySQL -- кое-какие знания есть, что-то прочитала в инете

Дык спрашуй, я в вот 2 недели назад сам у Britvы консультировался
Название: Хранение графических файлов в MySQL
Отправлено: vladsu от 23 Ноября 2001, 17:04:44
Hi.

а тут можно почитать и скачать доку по MySQL, правда это для любителей Perl :)

http://perldoc.narod.ru/
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 17:15:39
Цитировать
а тут можно почитать и скачать доку по MySQL, правда это для любителей Perl

Спасибо, но я MySQL в связке с PHP собираюсь использовать. Правда с PHP я знакома тоже весьма поверхностно...

Вопрос: создала я таблицу

create table monitor (
id int(2) not null auto_increment,
file_name varchar(20) not null,
file_data longblob not null,
primary key (id));

как мне ее теперь заполнить из командной строки (при помощи insert)?
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 17:21:42
insert into monitor values(\'\', \'$file_name\', \'$file_data\');
а $file_data=file($file_name);
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 17:24:38
забыл, лучше $file_data=addslashes(file($file_name));
а то плохо будет :) ошибки будут возникать из-за кавычек.
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 17:54:54
При такой записи:

mysql> insert into monitor values ("1, \'c:/image/1.jpeg\', \'addslashes(file($file_name))\'");

Или такой:

mysql> insert into monitor values ("1, \'c:/image/1.jpeg\', \'addslashes(file(c:/image/1.jpeg))\'");

Выводится ошибка:

ERROR 1136: Column count doesn\'t match value count at row 1
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 18:00:13
я имел в виду из скрипта :)
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 18:09:29
через командную строку ну очень неудобно, скачай лучше phpMyAdmin - http://www.phpwizard.net
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 23 Ноября 2001, 18:12:25
А мне пока нужно заполнить базу вручную. Как мне записать туда файлы?

И еще: после того, как я залью туда картинки, где они будут хранится физически? В каталоге базы?
Название: Хранение графических файлов в MySQL
Отправлено: Britva от 23 Ноября 2001, 18:21:33
напиши простенький скрипт на php к-рый будет вставлять все файлы.
//1.
$fp=fopen("file1");
mysql_query("insert ...");
...
fclose($fp);
//2.
и.т.д.

---
бд хранятся в \\mysql\\data\\db_name
чтобы перенести их потом на сервер, просто с помощью phpMyAdmin\'a сделай дамп, а на сервере, им же, уже этот дамп выполни.
Название: Хранение графических файлов в MySQL
Отправлено: nobody от 27 Ноября 2001, 08:32:56
Картинки физически будут храниться в нутри базы, и ты их никак не увидешь... По моему мнению лучше в базе хронить только названия...
Название: Хранение графических файлов в MySQL
Отправлено: Макс от 27 Ноября 2001, 14:27:03
Цитировать
Картинки физически будут храниться в нутри базы, и ты их никак не увидешь...
Да нет, картинки она увидит если скрипт соответствующий напишет, но я с тобой согласен в том, что фотки лучше держать на диске. Так в таблице не будет blob-поля и она будет быстрее работать.

В некоторых случаях можно и без названия файла обойтись.
Я как-то писал доску объявлений, в которой нужно было позволить юзерам фотки закачивать то я  фотки
записывал в отдельный каталог и имена им присваивал вида
.<расширение> - где ID - уникальный идентификатор объявления. Так сразу 2 зайцев убил: не нужно было поле в таблице для имени файлов и была решена проблема с записью в каталог файла с именем, которое уже есть в каталоге.

Еще один плюс (как мне кажется) хранения фоток на диске - то что для их показа нужно будет просто указать путь к ним, то есть не нужно писать никаких скриптов. И выполняться это будет быстрее и сервер не будет грузить. А чтобы из БД фотку вытащить - нужно "лишний" скрипт выполнять - "лишняя" нагрузка. Хотя конечно иногда это не подходит.
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 28 Ноября 2001, 16:24:40
Я скачала phpMyAdmin. Где можно прочитать о его настройке и использовании? А то самой не разобраться :(
Название: Хранение графических файлов в MySQL
Отправлено: tigor от 17 Декабря 2001, 11:25:15
MyAdmin не надо настраивать - только укажи логин и пароль для рута в настройках (файл config.inc.php) и всё заработает.
Название: Хранение графических файлов в MySQL
Отправлено: Tepncuxopa от 18 Декабря 2001, 14:44:43
Спасибо tigor, уже все давно работает (как-никак уже почти месяц прошел :) ).
Название: Хранение графических файлов в MySQL
Отправлено: dadesign от 10 Января 2002, 15:29:47
Прочитал, попробовал... получилось..... (Спасибо!!! )
А как определить размеры картинки (пикселы и байты), выдернутой из бызы?????

Пробовал вот так:

$res=mysql_query("SELECT * FROM sample_files ORDER BY id ASC", $conn_id);
$count_res=mysql_num_rows($res);
for ($i = 0; $i < $count_res; $i++) {
$size = GetImageSize (mysql_result($res, $i, "file_data"));
print "
\\n";
}
 

Пишет

Цитировать
Warning: getimagesize: Unable to open \'GIF89aK\' for reading. in мой урл on line 64