web-dev-qa-db-fra.com

Comment insérer un fichier dans la base de données MySQL?

Je souhaite insérer un fichier dans la base de données MYSQL résidant sur un serveur Web distant utilisant un service Web.

Ma question est: quel type de colonne de table (par exemple varchar, etc.) stockera un fichier? Et l'instruction d'insertion sera-t-elle quelque peu différente dans le cas d'un fichier?

27
meetpd

Le type de données BLOB est idéal pour stocker des fichiers.

24
Brian Webster

Les autres réponses vous donneront une bonne idée de comment accomplir ce que vous avez demandé ....

Toutefois

Il n'y a pas beaucoup de cas où c'est une bonne idée. Il est généralement préférable de ne stocker que le nom de fichier dans la base de données et le fichier sur le système de fichiers.

De cette façon, votre base de données est beaucoup plus petite, peut être transportée plus facilement et, plus important encore, est plus rapide à sauvegarder/restaurer.

12
David Steele

Vous devez utiliser BLOB, il y a TINY, MEDIUM, LONG et juste BLOB, comme pour les autres types, choisissez-en un en fonction de vos besoins de taille.

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

La déclaration d'insertion serait assez normale. Vous devez lire le fichier en utilisant fread puis addslashes.

12
Daniel Bang

Taille du fichier par type MySQL:

  • TINYBLOB 255 octets = ,000255 Mo
  • BLOB 65535 octets = ,0655 Mo
  • MEDIUMBLOB 16777215 octets = 16,78 Mo
  • LONGBLOB 4294967295 octets = 4294,97 Mo = 4,295 Go
11
Lukas