Я хочу вставить изображение в таблицу, например
CREATE TABLE XX_SAMPLE(ID INT
,IMAGE BLOB);
Итак, можете ли вы помочь сформировать способ вставки изображения в таблицу выше.
Я хочу вставить изображение в таблицу, например
CREATE TABLE XX_SAMPLE(ID INT
,IMAGE BLOB);
Итак, можете ли вы помочь сформировать способ вставки изображения в таблицу выше.
Пожалуйста, попробуйте ниже код
INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
Вы должны использовать LOAD_FILE так:
LOAD_FILE('/some/path/image.png')
Вы можете попробовать что-то вроде этого.
CREATE TABLE 'sample'.'picture' (
'idpicture' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'caption' VARCHAR(45) NOT NULL,
'img' LONGBLOB NOT NULL,
PRIMARY KEY('idpicture')) TYPE = InnoDB;
или обратитесь к следующим ссылкам для учебных пособий и примеров, которые могут вам помочь.
http://forums.mysql.com/read.php?20,17671,27914
http://mrarrowhead.com/index.php?page=store_images_mysql_php.php
http://www.hockinson.com/programmer-web-designer-denver-co-usa.php?s=47
У меня есть три ответа на этот вопрос:
Оптимальная практика UX для пользователей используется для использования типов данных BLOB и CLOB в строке и извлечения двоичных данных из базы данных SQL, поэтому рекомендуется использовать технику, которая включает в себя хранение URL-адрес изображения (или любой двоичный файл в базе данных). Этот URL-адрес поможет пользовательскому приложению получить и использовать этот двоичный файл.
Во-вторых, типы данных BLOB и CLOB доступны только для нескольких версий SQL, таким образом, такие функции, как LOAD_FILE, или сами типы данных могут пропустить в некоторых версиях.
Третий НЕ ИСПОЛЬЗУЙТЕ BLOB ИЛИ CLOB. Храните URL-адрес; позволить пользовательскому приложению обращаться к двоичному файлу из папки в каталоге проекта.
Если я использую следующий запрос,
INSERT INTO xx_BLOB(ID,IMAGE)
VALUES(1,LOAD_FILE('E:/Images/xxx.png'));
Ошибка: нет такой функции: LOAD_FILE
Я попробовал все вышеупомянутое решение и потерпел неудачу, он просто добавил нулевой файл в БД.
Однако я смог это сделать, переместив файл изображения (fileName.jpg
) сначала в папку ниже (в моем случае) C:\ProgramData\MySQL\MySQL Server 5.7\Uploads
а затем выполнил команду ниже, и она работает для меня,
INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/fileName.jpg'));
Надеюсь это поможет.
Я попробовал вышеуказанный метод
INSERT INTO xx_BLOB(ID,IMAGE) VALUES(1,LOAD_FILE('E:/Images/jack.jpg'));
это не сработало для меня, столбец "ИЗОБРАЖЕНИЕ" показывает ноль
учитывая ту же таблицу, что и в оригинальном вопросе