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

вот что получается, экранирование кавычек не помоглоsad фильтрация начисто сносит все содержимоеsad

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, так просто тело сообщения мыла организованоsmile .
А памяти не много кушает? Все таки не две строчки извлекать приходитсяsmile

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кбsmile это средняя страница в форуме. идея интереснаяsmile

23. Валерий (12.06.2010 / 23:55)
А помоему такое управление смайлами с папками, добавлением, удалением, редактированием кодов для них не сложно и без базы сделать.. Думаю база тут лишняя.. А если с базой, то в ней можно хранить только названия файла, и точно так же управлять всем этим..
Думаю хранить картинки в базе не стоит

URL: https://visavi.net/topics/9889