Подтвердить что ты не робот

Как вставить файл в базу данных MySQL?

Я хочу вставить файл в базу данных MYSQL, находясь на удаленном веб-сервере, используя webservice.

Мой вопрос: какой тип столбца таблицы (например, varchar и т.д.) будет хранить файл? И будет ли оператор insert несколько отличаться в случае файла?

4b9b3361

Ответ 2

Вам нужно использовать BLOB, там TINY, MEDIUM, LONG и просто BLOB, как и для других типов, выберите один в соответствии с вашими размерами.

TINYBLOB 255
BLOB 65535
MEDIUMBLOB 16777215
LONGBLOB 4294967295
(in bytes)

Оператор insert будет довольно нормальным. Вам необходимо прочитать файл, используя fread, а затем addslashes.

Ответ 3

Другие ответы дадут вам хорошую идею, как выполнить то, что вы просили....

Однако

Есть мало случаев, когда это хорошая идея. Обычно лучше хранить только имя файла в базе данных и файл в файловой системе.

Таким образом, ваша база данных намного меньше, ее можно легко транспортировать и, что более важно, быстрее выполнять резервное копирование/восстановление.

Ответ 4

Размер файла по типу MySQL:

  • TINYBLOB 255 байт = 0.000255 Мб
  • BLOB 65535 bytes = 0.0655 Mb
  • MEDIUMBLOB 16777215 bytes = 16.78 Mb
  • LONGBLOB 4294967295 bytes = 4294.97 Mb= 4.295 Gb