Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser LOAD_FILE pour charger un fichier dans un blob MySQL ?

Le manuel indique ce qui suit :

LOAD_FILE(nom_fichier)

Lit le fichier et renvoie le contenu du fichier sous forme de chaîne. Pour utiliser cette fonction, le fichier doit se trouver sur l'hôte du serveur, vous devez indiquer le chemin d'accès complet au fichier et vous devez disposer du privilège FILE. Le fichier doit être lisible par tous et sa taille inférieure à max_allowed_packet octets. Si la variable système secure_file_priv est définie sur un nom de répertoire non vide, le fichier à charger doit se trouver dans ce répertoire.

Si le fichier n'existe pas ou ne peut pas être lu car l'une des conditions précédentes n'est pas satisfaite, la fonction renvoie NULL.

Depuis MySQL 5.0.19, la variable système character_set_filesystem contrôle l'interprétation des noms de fichiers donnés sous forme de chaînes littérales.

mysql> UPDATE t
            SET blob_col=LOAD_FILE('/tmp/picture')
            WHERE id=1;

À partir de là, je vois plus d'une chose qui pourrait ne pas aller dans votre cas...

  • passez-vous le chemin complet ?
  • les privilèges sont-ils correctement définis ?
  • que renvoie la fonction ? NUL ?
  • avez-vous essayé avec la requête donnée dans le manuel ?