Ler um Campo BLOB em PHP


Uma pergunta bem frequente em foruns PHP.

Primeiramente mostrarei utilizando a base de dados Firebird, como fazer um select e ler as informações contidas no mesmo.

Então a partir daí mostrarei como ler um campo Blob.

Não mencionei o Firebird no título do post pelo seguinte motivo, o PHP possuí diversos providers de conexão porém os mesmos seguem um padrão de parâmetros e modo de funcionar. Em geral a única coisa que muda é o prefixo por exemplo:

ibase_connect()

mysql_connect()

Perceba que eu falei em geral mas não em todos os casos. Sempre confira a documentação antes de sair me xingando.

Vamos à conexão utilizando um provider ibase para Firebird.

$conexao = ibase_connect($base, $busuario, $bsenha);

Onde $base, $busuario, $bsenha são constantes.

$query = ibase_prepare($conexao, “Select * from CIDADES”);

Preparamos uma query com o comando de busca que desejamos.

Eu disse comando de busca, somente Selects. Updates, Inserts e outros comandos que modificam a base funcionam de outro modo.

$exec = ibase_execute($query);

Finalmente executamos a query gerada.

Feito isto podemos ler o resultado do select desta forma:

while($linha = ibase_fetch_assoc($exec)){

echo $linha[‘CODIGO_CIDADE’];

echo $linha[‘NOME_CIDADE’];

.

.

.

}

O exemplo acima mostra como ler campos texto normais, os campos blob podem ser lidos desta forma:

while($linha = ibase_fetch_assoc($exec)){

echo $linha[‘CODIGO_CIDADE’];

echo $linha[‘NOME_CIDADE’];

$binfo = ibase_blob_info($linha[‘COMENT_CIDADE’]);
$bopen = ibase_blob_open($linha[‘COMENT_CIDADE’]);
echo ibase_blob_get($bopen, $binfo[0]);

.

.

}

Na leitura do Blob COMENT_CIDADE acima, primeiro retiramos informações do blob como o seu tamanho em bytes (posição 0 de $binfo) no nosso caso.

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s