Как вставить файл в базу данных MySQL? - PullRequest
27 голосов
/ 11 мая 2011

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

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

Ответы [ 4 ]

23 голосов
/ 11 мая 2011

Тип данных BLOB лучше всего подходит для хранения файлов.

12 голосов
/ 11 мая 2011

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

Тем не менее

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

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

12 голосов
/ 11 мая 2011

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

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

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

10 голосов
/ 20 апреля 2017

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

  • TINYBLOB 255 байт = 0,000255 МБ
  • BLOB 65535 байт = 0,0655 Мб
  • MEDIUMBLOB 16777215 байт = 16,78 Мб
  • LONGBLOB 4294967295 байт = 4294,97 Мб = 4,295 Гб
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...