Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar LOAD_FILE para carregar um arquivo em um blob MySQL?


O manual afirma o seguinte:

LOAD_FILE(nome_arquivo)

Lê o arquivo e retorna o conteúdo do arquivo como uma string. Para usar esta função, o arquivo deve estar localizado no host do servidor, você deve especificar o nome completo do caminho para o arquivo e deve ter o privilégio FILE. O arquivo deve ser legível por todos e seu tamanho inferior a max_allowed_packet bytes. Se a variável de sistema secure_file_priv for definida como um nome de diretório não vazio, o arquivo a ser carregado deverá estar localizado nesse diretório.

Se o arquivo não existir ou não puder ser lido porque uma das condições anteriores não foi satisfeita, a função retornará NULL.

A partir do MySQL 5.0.19, a variável de sistema character_set_filesystem controla a interpretação de nomes de arquivos que são dados como strings literais.
mysql> UPDATE t
            SET blob_col=LOAD_FILE('/tmp/picture')
            WHERE id=1;

A partir disso, vejo mais de uma coisa que poderia estar errada no seu caso...
  • você está passando o caminho completo?
  • os privilégios estão definidos corretamente?
  • o que a função retorna? NULO?
  • você já tentou com a consulta fornecida no manual?