Forum Webscript.Ru
Общие => Базы данных => Тема начата: Tepncuxopa от 23 Ноября 2001, 16:16:53
-
Можно ли хранить картинки в базе данных? Как их туда записывать и впоследствии вытаскивать?
-
тип BLOB
-
Можно.
Вот тут как это делать
http://www.phpdevs.com/data/22/57.html
-
Т.е. я создаю таблицу:
create table picture (
id int(2) not null auto_increment,
picture blob,
primary key (id));
...и заполняю ее:
insert into picture values (\'1\', \' [а сюда что писать?] \');
---------------
И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?
-
Можно.
Вот тут как это делать
http://www.phpdevs.com/data/22/57.html
Спасибо ;)
-
И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?
ALTER TABLE `yourtable` ADD `namecolumn` type NOT NULL
-
И еще вопрос: можно ли впоследствии добавить колонку в таблицу? И как это сделать?
ALTER ....
а вообще лучше через phpMyAdmin действовать :)
-
bhor, спасибо ;)
Только что села за MySQL -- кое-какие знания есть, что-то прочитала в инете, но времени на обстоятельное изучение нет :( Вот и возникает куча глупых вопросов ;)
-
а вообще лучше через phpMyAdmin действовать
Да да тоже советую намного быстрее и удобнее. ;)
Только что села за MySQL -- кое-какие знания есть, что-то прочитала в инете
Дык спрашуй, я в вот 2 недели назад сам у Britvы консультировался
-
Hi.
а тут можно почитать и скачать доку по MySQL, правда это для любителей Perl :)
http://perldoc.narod.ru/
-
а тут можно почитать и скачать доку по 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)?
-
insert into monitor values(\'\', \'$file_name\', \'$file_data\');
а $file_data=file($file_name);
-
забыл, лучше $file_data=addslashes(file($file_name));
а то плохо будет :) ошибки будут возникать из-за кавычек.
-
При такой записи:
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
-
я имел в виду из скрипта :)
-
через командную строку ну очень неудобно, скачай лучше phpMyAdmin - http://www.phpwizard.net
-
А мне пока нужно заполнить базу вручную. Как мне записать туда файлы?
И еще: после того, как я залью туда картинки, где они будут хранится физически? В каталоге базы?
-
напиши простенький скрипт на php к-рый будет вставлять все файлы.
//1.
$fp=fopen("file1");
mysql_query("insert ...");
...
fclose($fp);
//2.
и.т.д.
---
бд хранятся в \\mysql\\data\\db_name
чтобы перенести их потом на сервер, просто с помощью phpMyAdmin\'a сделай дамп, а на сервере, им же, уже этот дамп выполни.
-
Картинки физически будут храниться в нутри базы, и ты их никак не увидешь... По моему мнению лучше в базе хронить только названия...
-
Картинки физически будут храниться в нутри базы, и ты их никак не увидешь...
Да нет, картинки она увидит если скрипт соответствующий напишет, но я с тобой согласен в том, что фотки лучше держать на диске. Так в таблице не будет blob-поля и она будет быстрее работать.
В некоторых случаях можно и без названия файла обойтись.
Я как-то писал доску объявлений, в которой нужно было позволить юзерам фотки закачивать то я фотки
записывал в отдельный каталог и имена им присваивал вида
.<расширение> - где ID - уникальный идентификатор объявления. Так сразу 2 зайцев убил: не нужно было поле в таблице для имени файлов и была решена проблема с записью в каталог файла с именем, которое уже есть в каталоге.
Еще один плюс (как мне кажется) хранения фоток на диске - то что для их показа нужно будет просто указать путь к ним, то есть не нужно писать никаких скриптов. И выполняться это будет быстрее и сервер не будет грузить. А чтобы из БД фотку вытащить - нужно "лишний" скрипт выполнять - "лишняя" нагрузка. Хотя конечно иногда это не подходит.
-
Я скачала phpMyAdmin. Где можно прочитать о его настройке и использовании? А то самой не разобраться :(
-
MyAdmin не надо настраивать - только укажи логин и пароль для рута в настройках (файл config.inc.php) и всё заработает.
-
Спасибо tigor, уже все давно работает (как-никак уже почти месяц прошел :) ).
-
Прочитал, попробовал... получилось..... (Спасибо!!! )
А как определить размеры картинки (пикселы и байты), выдернутой из бызы?????
Пробовал вот так:
$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