Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL

Banner Tec News - Blob MySQL Perl

Olá a todos, tentarei iniciar aqui uma série de post denominada “Dicas de Programação do Titio Plastico”, onde darei dicas úteis, concisas e de escopo definido sobre as linguagens de programação que eu conheço. Começarei com este exemplo, pois foi algo que procurei bastante na internet para um script que eu estava fazendo e não achei nanhuma informação de credibilidade sobre o assunto, achei estranho, ao final acabei fazendo do jeito mais obvio, e na minha cabeça o mais improvável, e não é que deu certo! Bom, sem mais demoras, vamos ao que interessa.

A linguagem de hoje é:

Perl

Dados técnicos:

Versão do Perl – v5.8.8
Versão do MySQL – 5.0.18
Distribuições Testadas – Suse 10.1 e Ubuntu 7.10

Antes de Começar:

Certifique-se de que você tem as versões citadas acima ou superiores, e que você tenha conexão com uma base de dados que contenha campos do tipo BLOB. Caso não tenha uma tabela com BLOB ai vai um exemplo:

CREATE TABLE `user` (
`user_id` int(5) unsigned NOT NULL auto_increment,
`user_name` varchar(255) character set latin1 collate latin1_bin NOT NULL default ”,
`user_password` tinyblob NOT NULL,
`user_email` tinytext NOT NULL,
`user_options` blob NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_name` (`user_name`),
KEY `user_email_token` (`user_email_token`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;

No exemplo acima definimos o “user_options” como uma série de configurações padrão para criação de um novo usuário que serão lidas por uma aplicação que fará o acesso ao banco através de um arquivo .txt , chamaremos este arquivo de template.txt.

Fazendo a Mágica acontecer

Abaixo vai o código comentado:


#!/usr/bin/perl

#[ Use estes dois aqui sempre, esta lah no livro de boas praticas ]
use warnings;
use strict;
#[ Este aqui eh usado para acessar o banco ]
use DBI;

#[ Outras variaveis ]
my $login = “usertest”;
my $email = “usertest@email.com”;

#[ Variavel que ira receber o arquivo inicialmente zerada ]
my $options = “”;

#[ Abrimos o arquivo e armazenamos em uma variavel ]
open(FILE, “template.txt”) or die “File cannot be read”;
read(FILE, $options, 1153);
close(FILE);

#[ Conecta no banco ]
my $dbh = DBI->connect(“DBI:mysql:nome da tabela“, ‘usuario‘, ‘senha‘) or die “Impossivel conectar no Servidor: $DBI::errstr”;

#[ Inserindo os dados ]
$query = “INSERT INTO nome da tabela.user (user_name,user_email,user_options) VALUES (?, ?, ?, ?)”;
$insert = $dbh->prepare_cached($query);
$insert->execute($login, $email, $options) or die “Impossivel conectar no Servidor: $DBI::errstr”;
print “Usuario $login adicionado com sucesso!\n”;

#[ Desconecta do Banco ]
$dbh->disconnect;

Conciderações finais

Lembre-se que o Perl irá procurar o arquivo no mesmo diretório onde o script se encontra, caso o script e o arquivo a ser carregado estejam em diretórios diferentes altere a linha “open” com o caminho completo do arquivo.

O número que existe nalinha read(FILE, $options, 1153);significa o tamanho do arquivo em kbites.

Para saber mais

Documentação Oficial do MySQL sobre BLOB
Documentação Oficial do Perl DBI

Gostou desse post? Então você vai gostar deste:
Teste a Portabilidade dos seus scripts

Adicionar ao Ueba Adicionar aos Favoritos BlogBlogs Adicionar artigo ao DiHitt Adicionar artigo ao Eu Curti Adicionar esta noticia no Linkk Envie este link para linkTo! Adicionar artigo ao Rec6 Adicionar ao Ueba

Quer ter estes botões no seu site? Acesse


3 Respostas para “Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL”

  1. Teste a Portabilidade dos seus scripts « Los 3 Nerds Disse:

    [...] Gostou desse post? Então você vai gostar deste: Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL [...]

  2. Dica de Programação - Criando Scripts com Parâmetros em Perl « Los 3 Nerds Disse:

    [...] desse post? Então você vai gostar deste: Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL Teste a Portabilidade dos seus [...]

  3. Dica de Programação - Usando a função innerHTML do Javascript « Los 3 Nerds Disse:

    [...] de Programação – Criando Scripts com Parâmetros em Perl Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL Teste a Portabilidade dos seus [...]

Deixe uma resposta