Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare LOAD_FILE per caricare un file in un BLOB MySQL?

Il manuale afferma quanto segue:

LOAD_FILE(nome_file)

Legge il file e restituisce il contenuto del file come stringa. Per utilizzare questa funzione, il file deve trovarsi sull'host del server, è necessario specificare il percorso completo del file e disporre del privilegio FILE. Il file deve essere leggibile da tutti e la sua dimensione inferiore ai byte max_allowed_packet. Se la variabile di sistema secure_file_priv è impostata su un nome di directory non vuoto, il file da caricare deve trovarsi in quella directory.

Se il file non esiste o non può essere letto perché una delle condizioni precedenti non è soddisfatta, la funzione restituisce NULL.

A partire da MySQL 5.0.19, la variabile di sistema character_set_filesystem controlla l'interpretazione dei nomi di file che sono dati come stringhe letterali.

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

Da questo, vedo più di una cosa che potrebbe essere sbagliata nel tuo caso...

  • stai superando l'intero percorso?
  • I privilegi sono impostati correttamente?
  • cosa restituisce la funzione? NULLA?
  • l'hai provato con la query data nel manuale?