1

Imagens no MySQL

logo_mysql_gr

Trabalhando com Imagens no MySQL

Nesta postagem veremos uma forma de se trabalha com o armazenamento de imagens no MySQL. Para isso devemos conhecer um pouco o tipo de dado BLOB.

Tipos de Campo Blob (Binary Large Object)

Os campos de tipo blob são campos criados para armazenar qualquer tipo de informação em formato binário dentro de uma tabela no banco de dados. Os campos BLOBs na verdade são campos do tipo TEXT sendo que o BLOB não são case-sensitive como os campos de tipo TEXT.

Restrições dos campos BLOB

  • Não podem ser chaves primárias (excluindo Tinyblob);
  • Não é possível usar os comandos GROUP e SORT com campos blob;
  • São reconhecidos como um LONGVARCHAR para drivers ODBC.

No MySQL existem 4 definições de campos BLOBs, seguem elas:

  • TINYBLOB – armazena 255 caracteres (8 bits) mais 1 de controle;
  • BLOB – armazena até 16535 caracteres (16 bits) mais 2 de controle;
  • MEDIUMBLOB – armazena até 16777216 caracteres (24 bits) mais 3 de controle;
  • LONGBLOB – armazena até 4294967295 caracteres (32 bits) mais 4 de controle.

Criando uma tabela para armazenar imagens

 Inserindo uma imagem na tabela

Note que utilizo o LOAD_FILE para buscar um arquivo no diretório c:/tmpfotos, ao executar o insert é salvo na base o binário da foto.

Selecionando e salvando em um Diretório

Para buscar e salvar a foto em um diretório verifique se o usuário tem permissão para gravar no mesmo, além de verificar senão existe um arquivo com o mesmo nome. Nos próximos posts uma demonstração com o php.

 

Paulo R. Marinho

One Comment

  1. olá.. estou pesquisando muito para implementar imagens no meu pequeno banco de dados mysql com workbench sem necessidade de saber programação em outras linguas. este artigo foi o mais fácil de entender.
    porém quando coloco o insert do caminho da foto, o mysql dá erro dizendo que não é possível inserir a foto pois o arquivo é null.
    eu tenho autorização para gravar na pasta upload do mysql. Tem algum outro comando que tenho que dar para salvar estas imagens no servidor?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

69 + = 73