2017-01-07 8 views
0

Я использую локальную базу данных, и я пытаюсь вставить изображение в столбец Photo VARBINARY (20000).Синтаксис пути для LOAD_FILE с использованием сервера WAMP

Каков путь, который я должен использовать для LOAD_FILE?

INSERT INTO ImageTable(PHOTO) VALUES(LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg')); 

Это то, что я использую. Это введите NULL в таблицу. MySQL также находится под этим путем. Должен ли путь относиться к чему-то? Я использую командную строку.

+1

Dont 'сохранять файлы в базе данных. http://stackoverflow.com/a/41235395/267540 – e4c5

+0

Вы получаете сообщение об ошибке, что файл был найден или нет? Если нет, тогда MySQL правильно интерпретирует файл, тогда вам нужно посмотреть содержимое файла. – davejal

+0

Я попытался загрузить файл, который не существует, и он не дает никакой ошибки в любом случае. @ e4c5: У меня тоже есть строка, что я могу «data: image/jpeg; base64», но слишком долго вставлять ее с помощью командной строки. Какие-нибудь советы по этому поводу? – sandboxj

ответ

1

Фактически, если вы используете изображение, Varchar - неправильный тип. Вместо этого вы должны использовать BLOB. Это должно покрыть:

INSERT INTO ImageTable(PHOTO) VALUES(1,LOAD_FILE('E:/wamp64/bin/mysql/mysql5.7.14/data/test.jpg'));

Поиск дальше для BLOB и LONGBLOB использовать изображения.

+0

Извините, моя ошибка. Это тип VARBINARY (20000), а не VARCHAR. :(Я исправил его в главном сообщении. – sandboxj

+0

Во всяком случае, код, который я написал, должен помочь. У меня была одна и та же проблема, только то, что я использовал varchar для поиска пути изображения. Intead, BLOB загрузит изображение на ссылку, которую вы вставляете . :) – Pelicer

+0

Вспоминая, что BLOB принимает строки для пути. – Pelicer

0

I disabled - secure-file-priv и он работал. Но не уверен, что это была проблема, потому что сообщение об ошибке для taht не было показано.