[SP-pm] descubrir o tipo da variavel

Lucas Moraes mineiro at live.be
Tue Jul 13 11:57:06 PDT 2010


Oi Gente, Terminei o que eu queria e para mim foi um sucesso, segue o modulo abaixo:

 

package Dados;
 

use strict;
use warnings;
use DBI;
use boolean ':all';
use Tie::IxHash;
use Scalar::Quote ':short';
 

sub new {
my $platform = "mysql";
my $database = "perl";
my $host = "localhost";
my $port = "3306";
my $user = "root";
my $pass = "";

my $dsn = "dbi:$platform:$database:$host:$port";
my $connect = DBI->connect($dsn, $user, $pass);

my $this = shift;
my $class = ref($this) || $this;
my $dados = {
conn => $connect,
tabela => shift
};
bless($dados);
return $dados;
}
 

sub Inserir {
my $this = shift;
my %dados = @_;
tie my %campos, "Tie::IxHash";
while(my($indece, $valor) = each(%dados)){
if(isBoolean($valor)){
$campos{$indece} = $valor ? 'TRUE' : 'FALSE';
}elsif($valor =~ /[ a-zA-Z*.+()"':_=-]+/){
$valor = S($valor);
$campos{$indece} = "$valor";
}else{
$campos{$indece} = "NULL";
}
}

my @indices = join(', ', keys(%campos));
my @valores = join(', ', values(%campos));

my $sql = "INSERT INTO $this->{tabela} (";
$sql .= " @indices )";
$sql .= " VALUES (@valores)";
my $query = $this->{conn};
my $valor = $query->prepare($sql);
$valor->execute();
print $sql;
}
 

1;

 

 

 

um exemplo:

 

#!perl
 

use CGI::Carp qw(fatalsToBrowser);
use strict;
use warnings;
use Dados;
use Tie::IxHash;
 

print "Content-type: text/html\n\n";
 

my $query = Dados->new('NomeDaTabela');

tie my %carro, "Tie::IxHash";
 
%insert = (
Campo1 => 'Moraes',
Campo2 => 'mineiro em live.be',
Campo3 => 'Lucas'
);
 

$query->Inserir(%insert);

 

 

Obrigado a todos!

 

Deus é o limite!

 

 
 		 	   		  
_________________________________________________________________
Hotmail: gratis krachtige e-mail met beveiliging van Microsoft.
https://signup.live.com/signup.aspx?id=60969
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20100713/bb388149/attachment-0001.html>


More information about the SaoPaulo-pm mailing list