<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman, new york, times, serif;font-size:10pt"><div style="font-family: times new roman,new york,times,serif; font-size: 10pt;">Ola Luis..<br>Aproveitando o seu codigo, tentei implementar o codigo abaixo, so para ver c funciona:<br><br><br>@data_hash_references=('2007-01-23 12:00');<br>$variavel='Nome'';&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt; essa variavel pode mudar...<br>$flag='BLABLA';<br>$id='33';<br>$table='tabela2';<br><br><br>my $sql = qq/ INSERT INTO $table(Nome,DataHora) VALUES(?,?) ON DUPLICATE KEY UPDATE ?=? /;<br><br>my ( $sth );<br><br>eval {<br>$sth = $dbh-&gt;prepare( $sql );<br><br>foreach my $data(@data_hash_references)<br>{<br><br>&nbsp;&nbsp; $sth-&gt;execute($id,$data,$variavel,$flag);<br><br>}<br>$sth-&gt;commit;<br>};<br>if( $@ )<br>{<br>&nbsp; $dbh-&gt;rollback;<br>&nbsp; die "Pau de base de dados:
 $@";<br>}<br><br><br><br><br>So que ele da erro de Sintaxe quando ele atribui o ?=? eu acho q ele coloca uma aspas...<br><br>:D Alguem saberia dzer&nbsp; o pq??<br><br><br>Obnrigada + uma vez...<br><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">----- Mensagem original ----<br>De: Luis Motta Campos &lt;luismottacampos@yahoo.co.uk&gt;<br>Para: Cascavel Perl Mongers &lt;cascavel-pm@pm.org&gt;<br>Enviadas: Quinta-feira, 25 de Janeiro de 2007 11:31:56<br>Assunto: Re: [Cascavel-pm] Duvida  $dbh-&gt;prepare<br><br><div>On Jan 25, 2007, at 12:15 PM, Patty Silva wrote:<br>&gt; Bom estou tentando colocar 3 instrucoes de INSERT so que nao estou&nbsp;&nbsp;<br>&gt; conseguindo..<br>&gt; Isso eh possivel?<br><br>&nbsp;&nbsp; Não.<br><br>&gt; my $sql=qq{INSERT into table1(Nome,DataHora) values <br>&gt; ($nome,'$datahora') on duplicate key update&nbsp;&nbsp;<br>&gt; $variavels='$result_flags';&nbsp;&nbsp;};<br>&gt; my $sql1=qq{INSERT
 into&nbsp;&nbsp;table1(Nome,DataHora) values <br>&gt; ($nome,'$datahora1') on duplicate key update&nbsp;&nbsp;<br>&gt; $variavels='$result_flags';&nbsp;&nbsp;};<br>&gt; my $sql2=qq{INSERT into&nbsp;&nbsp;table1(Nome,DataHora) values <br>&gt; ($nome,'$datahora2') on duplicate key update&nbsp;&nbsp;<br>&gt; $variavels='$result_flags';&nbsp;&nbsp;};<br>&gt;<br>&gt; my $sql_insert=$sql."\n"..$sql1."\n".$sql_2;<br>&gt; $sth = $dbh-&gt;prepare($sql_insert) || die $DBI::errstr;<br>&gt; $sth-&gt;execute || die $DBI::errstr;<br><br><br>&nbsp;&nbsp; Você deveria implementar isso assim:<br><br>&nbsp;&nbsp; #!/usr/bin/perl<br>&nbsp;&nbsp; use warnings;<br>&nbsp;&nbsp; use strict;<br>&nbsp;&nbsp; use DBI;<br><br>&nbsp;&nbsp; my $dbh = DBI-&gt;connect( $dsn, $user, $passwd, { PrintError =&gt; 0,&nbsp;&nbsp;<br>RaiseError =&gt; 1, AutoCommit =&gt; 0 } )<br>&nbsp;&nbsp;&nbsp;&nbsp; or die "Pau na base de dados: [$DBI::errstr]\n";<br><br>&nbsp;&nbsp; ### enquanto isso, noutra parte do seu
 programa...<br><br>&nbsp;&nbsp; my $sql = &lt;&lt;'SQL' ;<br>INSERT INTO table1( Nome, DataHora )<br>&nbsp;&nbsp; VALUES( ?, ? )<br>&nbsp;&nbsp; ON DUPLICATE KEY UPDATE ?=?<br>SQL<br><br>&nbsp;&nbsp; eval{<br>&nbsp;&nbsp;&nbsp;&nbsp; my $sth = $dbi-&gt;prepare( $sql );<br>&nbsp;&nbsp;&nbsp;&nbsp; foreach my $data ( @data_hash_references ){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $sth-&gt;execute( $data-&gt;{nome}, $data-&gt;{datahora}, $data-&gt; <br>{variavels}, $data-&gt;{result_flags} );<br>&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp; $sth-&gt;commit;<br>&nbsp;&nbsp; };<br>&nbsp;&nbsp; if( $@ ){<br>&nbsp;&nbsp;&nbsp;&nbsp; $dbh-&gt;rollback;<br>&nbsp;&nbsp;&nbsp;&nbsp; die "Pau de base de dados: $@";<br>&nbsp;&nbsp; }<br><br>&gt; OBS: se eu colocar somente o $sql funciona.. entao nao eh problema&nbsp;&nbsp;<br>&gt; de sintaxe.. :)<br><br>&nbsp;&nbsp; Isso acontece por que você não pode usar ';' ou qualquer outro&nbsp;&nbsp;<br>limitador de instruções no
 SQL.<br>&nbsp;&nbsp; Você tem de passar uma instrução de cada vez, ou o DBI não vai&nbsp;&nbsp;<br>conseguir retornar os erros e estados da base de dados para você.<br><br>&nbsp;&nbsp; Espero que meu exemplo seja claro o bastante.<br>&nbsp;&nbsp; Eu não conheço algumas das instruções SQL que você está usando,&nbsp;&nbsp;<br>mas presumi que elas funcionem desta forma...<br>&nbsp;&nbsp; Putamplexos.<br>--<br>Luis Motta Campos is software engineer,<br>perl fanatic evangelist, and amateur {cook, photographer}<br><br><br>_______________________________________________<br>Cascavel-pm mailing list<br>Cascavel-pm@pm.org<br><a target="_blank" href="http://mail.pm.org/mailman/listinfo/cascavel-pm">http://mail.pm.org/mailman/listinfo/cascavel-pm</a><br></div></div><br></div></div><br>__________________________________________________<br>Fale com seus amigos  de graça com o novo Yahoo! Messenger <br>http://br.messenger.yahoo.com/ </body></html>