SQLite хранение объектов
1.
Артем (27.05.2010 / 17:38)
Здравствуйте. Возникла вот такая проблема:
- имеется объект-изображение
- нужно записать его в базу данных sqlite
- достать его оттуда как объект-изображение
Как это сделать? Какой тип поля указывать при создании таблицы? Помогите!
2.
Вантуз-мен (27.05.2010 / 18:05)
по-моему BLOB хотя я могу ошибаться надо мануалы почитать
3.
Артем (27.05.2010 / 19:13)
2. А чтение? Как обратно получить объект?
4.
Артем (27.05.2010 / 19:37)
Таблицу вроде создал...
5.
Вантуз-мен (27.05.2010 / 19:48)
На примере Mysql создай файл к примеру show.php
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error());
mysql_select_db ("database",$link);
$result = mysql_query ("SELECT * FROM `picatures` WHERE id='".int($_REQUEST['id'])."'");
$row = mysql_fetch_array($result);
header ("Content-type: image/jpeg");
echo $row['full_picture'];
?>
ну и выводи примерно так <img src="show.php?id=1" alt"" /> это вывод изображения с id 1
6.
Артем (27.05.2010 / 20:00)
А записать как? Вот допустим:
<?php
$db = sqlite_open('base.db',0666);
$im = imageCreateFromPNG("img.png");
sqlite_query($db, "INSERT INTO smile (id, cat, name, file) values('4', '1', '*test image dovn*', '$im')");
echo sqlite_error_string(sqlite_last_error($db));
sqlite_close($db);
?>
7.
Артем (27.05.2010 / 20:03)
Записывает: Resourse id #13
8.
Артем (27.05.2010 / 20:06)
Так все...понял)
9.
Артем (27.05.2010 / 20:16)
Как объект $im превратить в переменную? imagePNG($im); выводит в браузер или файл, а мне надо в переменную...
10.
Александр (27.05.2010 / 20:27)
$img = imagePNG($im); ??
11.
Артем (27.05.2010 / 20:45)
10. Выводит в браузер или файл, функция возвращает true или false, а не содержимое изображения
12.
xass (27.05.2010 / 21:50)
<?php
$im = imagecreatefrompng("test.png");
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
13.
Артем (27.05.2010 / 22:43)
12.
xass, ты чет уж совсем не в ту сторону...
14.
Вантуз-мен (27.05.2010 / 23:24)
я че-то не поял что ты собрался там записывать?
$file = file_get_contents("img.png");
$file записывай в поле BLOB
15.
Артем (28.05.2010 / 08:38)
Warning: sqlite_query() [function.sqlite-query]: near "'�PNG ": syntax error in/home/vorte117/public_html/sql.darkon line15
SQL logic error or missing database
вот что получается, экранирование кавычек не помогло
фильтрация начисто сносит все содержимое
16.
ramzes (28.05.2010 / 18:07)
base64_encode(file_get_contents('image.png'))
стандартный ход))
17.
Артем (29.05.2010 / 10:58)
16.
ramzes, логично;)
18.
Артем (29.05.2010 / 13:50)
Все получилось) записал/достал/вывел) вообще недавно в голову пришла идея сделать систему смайлов на базе с категориями. Управление через админку добавление смайлов/перемещение/создание категорий и т.д.
1 смайл генерируется в среднем за 0.002 сек.
19.
ramzes (29.05.2010 / 16:43)
17, так просто тело сообщения мыла организовано
.
А памяти не много кушает? Все таки не две строчки извлекать приходится
20.
Артем (29.05.2010 / 16:52)
19.
ramzes, да в принципе не должно) в среднем кодированный смайл весит 5-7кб
21.
Артем (29.05.2010 / 16:53)
Да и когда все в одном файле удобней) +с фс не люблю работать хоть убей
22.
ramzes (29.05.2010 / 16:54)
5*20 = 100кб
это средняя страница в форуме. идея интересная
23.
Валерий (12.06.2010 / 23:55)
А помоему такое управление смайлами с папками, добавлением, удалением, редактированием кодов для них не сложно и без базы сделать.. Думаю база тут лишняя.. А если с базой, то в ней можно хранить только названия файла, и точно так же управлять всем этим..
Думаю хранить картинки в базе не стоит
URL:
https://visavi.net/topics/9889