существует ли способ вставить рисунки (не URL, рис.) в таблицу MYSQL, сделанную с phpmyadmin? и если существует, когда я хочу получить то изображение и вставить его в страницу, что я должен сделать?:)
Это возможно (с использованием типа BLOB), но почти всегда лучше просто сохранить изображение в файловой системе и просто сохранить путь к изображению в базе данных.
Несколько причин, почему я не могу себе представить:
BLOB-объекты увеличивают размер вашей базы данных, делая резервное копирование и восстановление потенциально более сложным (хотя некоторые могут утверждать, что это упрощает, поскольку вам нужно только резервное копирование база данных, а не база данных плюс куча файлов).
Сохранение данных в виде больших двоичных объектов может вызвать проблемы с производительностью, если у вас есть ленивый код, использующий select *
.
Обслуживание изображений из файловой системы будет быстрее, чем их обслуживание из базы данных, и снизит нагрузку на сервер базы данных.
Вы получаете некоторую гибкость в том, где вы размещаете изображения - например, если вы хотите переместить их в CDN в будущем.
Когда дело доходит до статических ресурсов, таких как фоновые изображения, значки меню и т. Д., Я никогда не видел, чтобы кто-нибудь сохранял их в базе данных. Для динамического контента, такого как загруженные пользователем изображения, это не так уж и редко.
Вот некоторые плюсы и минусы хранения изображений в базе данных.
Преимущества:
Недостатки:
Лично я всегда обнаруживал, что преимущества перевешивают недостатки, и всегда имел изображения (вместе с mime-типами) в базе данных.
Связанные вопросы и ресурсы:
Если вы будете часто получать изображение, вам, вероятно, будет лучше хранить его в виде файла и сохранять путь к нему, чтобы сэкономить на обращении к базе данных при получении изображения.
В противном случае храните содержимое файла изображения в колонке BLOB, а затем выведите в HTML.
image.php
должен найти в базе данных изображение с ID 1234, получить содержимое этой BLOB-колонки и вывести его после передачи правильного HTTP-заголовка, например header('Content-type: image/gif');
Но серьезно. Просто сохраните файл изображения. Это гораздо менее хлопотно, обещаю.