
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

Quer ter estes botões no seu site? Acesse