
garrip91
27.02.2019
08:42:49
К примеру, имеется такой участок кода для вывода информации из БД:<?php
$result = mysqli_query($dbconnect, "SELECT id, num, surname, name, patronymic, address, img FROM information");
$myrow2 = mysqli_fetch_array($result);
do {
printf ("<h2><a href='%s'>%s</a></h2> <p>%s %s %s</p> <p>%s</p> <p>%s</p> <hr>", $myrow2['id'], $myrow2['num'], $myrow2['surname'], $myrow2['name'], $myrow2['patronymic'], $myrow2['address'], $myrow2['img']);
} while ($myrow2 = mysqli_fetch_array($result));
?>
изображения внесены в колонку "img" как BLOB
Почему при выводе яизображений я вижу массу непонятных символов?

Сасный
27.02.2019
08:45:13
Тебе выше уже отвечали на этот вопрос

Google

garrip91
27.02.2019
08:45:43

Сасный
27.02.2019
08:49:56
http://www.sql.ru/forum/521161/vyvod-kartinki-blob-iz-mysql-v-brouzer-sredstvami-php
Вот еще можешь покурить

Дмитрий
27.02.2019
08:50:15
я понимаю, если проблема уникальна и в гугле сложно найти инфу, но тут... первая выдача гугла по "php blob to image" даёт тебе ответ

garrip91
27.02.2019
10:12:21
Какую ошибку я здесь мог допустить? do {
printf ("<h2><a href='%s'>%s</a></h2> <p>%s %s %s</p> <p>%s</p> <p><img height="325" width="300" src="data:image;base64, ' . $myrow2['img'] . '">%s</p> <hr>", $myrow2['id'], $myrow2['num'], $myrow2['surname'], $myrow2['name'], $myrow2['patronymic'], $myrow2['address'], $myrow2['img']);
} while ($myrow2 = mysqli_fetch_array($result));
Пишет " Parse error: syntax error, unexpected '325' (T_LNUMBER), expecting ',' or ')' in D:\Eduard\EDUCATIONAL_PROGRAMMING_COURSES\OSPanel\domains\localhost\www\26.02.2019\articles.php on line 45 "

Дмитрий
27.02.2019
10:20:02
ты используешь двойные кавычки для обозначения строки, и в этой строке пытаешься поставить еще такие же. Их надо экранировать
или использовать внутри твоей строки одинарные кавычки

Terminator
27.02.2019
12:01:31
Дмитрий Родионов будет жить. Поприветствуем!

garrip91
27.02.2019
12:02:51
https://www.youtube.com/watch?v=oQ97k-X8WCI
Как тип с видеоролика получил изображение с БД?

Google

garrip91
27.02.2019
12:03:16
У меня не получилось

Alexandr
27.02.2019
12:21:10

Aleksandr
27.02.2019
12:24:50

Максим
27.02.2019
12:26:55

garrip91
27.02.2019
12:27:10

Дмитрий
27.02.2019
12:38:55

dypa
27.02.2019
12:48:49

Pavel
27.02.2019
12:54:02
А зачем это требуется?

Dmitry
27.02.2019
12:57:56
экономия сискалов ?

dypa
27.02.2019
13:57:21
А зачем это требуется?
1) нет прав на запись на машине
2) требуется репликация файлов
3) требуется дополнительная логика при отдаче файла, вч шифрование

Pavel
27.02.2019
14:06:05
Разговор примерно такой:
- Подскажите, какой скафандр выбрать для прогулок по улицам?
- Не очень то хорошо ходить в скафандре по улицам.
- Нормально, если понимать зачем это требуется.
- И зачем это требуется?
- 1) На улице льет кислотный дождь. 2) Ваша улица оказалась на дне океана. 3) Вы снимаете документальный фильм о прогулках на улице в скафандре.

dypa
27.02.2019
14:19:43


Pavel
27.02.2019
14:20:07
Согласен, это бред :)
Но если нет прав на запись на машину то стоит решать проблему с правами на запись на машину, а не в базу пихать.
Для репликации файлы хранятся в объектных хранилищах которые оптимизированы для этих задач.
Файлы и так отдаются шифрованными по https
Но в целом аргумент про дополнительную логику хорош. Права у nginx были какие-то тулзы чтобы организовать контроль доступа к файлам на диске.
Он там вроде дергает специально заданный урл и отдает файл клиенту только если урл вернул 200
У меня был кейс когда я решил хранить картинки в базе - мне было лень заморачиваться с несколькими бэкапами проекта и я хотел чтобы весь бэкап делался единообразно одним лишь бэкапом базы. Но потом я все же решил что это дичь, и можно потерпеть отдельно бэкапить базу и отдельно файлы.

Aleksandr
27.02.2019
14:42:23

Pavel
27.02.2019
14:43:37
Вроде в постгресе есть какой-то движок специализированный для хранения больших блобов, в нем должно быть нормально хранить файлы

Dmitry
27.02.2019
15:12:55
кто юзает ПО для межбазовой репликации? между разными субд

Google

Adel
27.02.2019
15:14:12

Dmitry
27.02.2019
15:14:37
мне реплицировать мускуль в другие базы.. в том числе nosql
ну может и там спрошу потом... ?

Adel
27.02.2019
15:15:00
там весьма умные люди сидят :)
не только в муське рубят :)
но там конкретнее надо спросить :)
потмоу что это не совсем репликация...

Dmitry
27.02.2019
15:15:35
это да... но в том то и дело, что мне в общих чертах - понять что есть готовое, нужно ли пилить свое

Adel
27.02.2019
15:16:09
ну проекции в терминах ES - это и есть репликации :)
но там другие правила игры конечно

Dmitry
27.02.2019
15:16:47
ну понятно что это репликация силами мидвари, но все же репликация ?
по сути ничего сложного - вычитывать бинлог и транслировать в синтаксис базы назначения... но наверняка нюансов хватает

dypa
27.02.2019
15:24:32

Aleksandr
27.02.2019
15:25:39
Зачем вообще может быть нужно делать chmod 777 на папку?

Pavel
27.02.2019
15:26:32

dypa
27.02.2019
15:26:37

Pavel
27.02.2019
15:27:41
То есть слова Александра наоборот надо подтвердить вот так: Не очень то хорошо хранить изображения в бд, но иногда безумные требования аналитиков и безопасников вынуждают творить такую дичь :)

dypa
27.02.2019
15:27:45

Pavel
27.02.2019
15:30:55
Ну так-то картинки это всегда часть данных, фотография пользователя, иллюстрации к бложику - это все части сущностей. Но хранение картинок в ФС это и есть то для чего ФС предназначена и мы получаем некоторую нормализацию по отношению к данным в базе.

Google

Pavel
27.02.2019
15:31:59
Файл как отдельный объект можно прочитать по кусочкам, проверить HTTP кеш и т.д. а с базой такого не сделаешь.

dypa
27.02.2019
15:35:05

Pavel
27.02.2019
15:35:43
Как оригинал да, идея годная
Pluses overall
Security and access control is simplified
version controlling is easier.
ACID
Backups are easier no need to track external files
Minus overall
Performance hit storing files in database.
Memory requirements higher, for Database
Backups can take significantly longer
Access to files to external applications is complicated. Normally a temporary file is copied to the client to access and modify the file then needs to be copied back.

dypa
27.02.2019
15:38:14

Adel
27.02.2019
15:38:14
Кстати вот да. бекапы. все таки бд и файлы должны отдельно бекапиться.
это разнородные такие данные...

Dmitry
27.02.2019
15:38:41
бд тоже файлы ?

dypa
27.02.2019
15:40:19
господа, а расскажите какое количество оперативки у вас сейчас на ноутах/системниках которые вы применяете для разработки?

Adel
27.02.2019
15:41:08
но у меня ссд с отключенным свопом. поэтому это с запасом.

Pavel
27.02.2019
15:47:23
16 Gb, как раз в след. месяце планирую себе еще доставить плашку на 16
Щас хватает не всегда, крутится 2-3 вагранта, пяток докеров, и одна жирная винда в виртуалке.
+ еще хром, ff, vscode, phpstorm
Еще смотрел себе ноут дикий за 200к с 32гб оперативки :) но это слишком

Adel
27.02.2019
16:02:38
а нам оно не особо нужно.
моник у меня и так основной стоит отдельный...

Pavel
27.02.2019
16:07:05
14"

Dmitry
27.02.2019
16:15:35
я на работе взял прошку с 16... в принципе хватает под насколько штормов, докер и браузер, но иногда, конечно, ощущается нехватка...

Google

garrip91
27.02.2019
16:45:58
Ребят, как в Open Server правильно указать путь к изображению?

Pavel
27.02.2019
16:49:34
В index.php надо создать константу на __DIR__, и уже от этого все пути и урлы строить

Dmitry
27.02.2019
17:10:38
А чем на форуме отличаются Новые сообщения и Новые сообщения ?

Adel
27.02.2019
17:13:26
трудности перевода наверно

garrip91
27.02.2019
19:39:35
Не отображается картинка, у которой ссылка берётся из БД
Народ! Каким скринхостингом вы все тут пользуетесь?

dypa
27.02.2019
20:03:38

garrip91
27.02.2019
20:27:21
Код № 1: https://pastebin.com/4aUsbFmy
Код № 2: https://pastebin.com/DmdQvMYY
Код № 2 я составил по образу и подобию Кода № 1
Почему Код № 1 работает, а Код № 2 нет?
Народ! Помогите мне, пожалуйста!

Aleksandr
27.02.2019
21:13:24
Кидать портянку на 100 строк без какой-либо конкретики и думать что кто-то будет тратить время чтобы в этом разбираться довольно таки наивно.

garrip91
27.02.2019
21:14:20

Aleksandr
27.02.2019
21:17:12
Ну удачи с таким подходом.