[Cascavel-pm] Duvida $dbh->prepare
Agnaldo Macedo
agnaldo em starweb-software.com.br
Quinta Janeiro 25 10:37:51 PST 2007
Para os que estão tentando ajudar a Patty, pelo quen deu para notar, pelo primeiro email dela, é que ela tem três instruções de SQL e quer executa-las.
my $sql=qq{INSERT into table1(Nome,DataHora) values($nome,'$datahora') on duplicate key update $variavels='$result_flags'; };
my $sql1=qq{INSERT into table1(Nome,DataHora) values($nome,'$datahora1') on duplicate key update $variavels='$result_flags'; };
my $sql2=qq{INSERT into table1(Nome,DataHora) values($nome,'$datahora2') on duplicate key update $variavels='$result_flags'; };
my $sql_insert=$sql."\n"..$sql1."\n".$sql_2;
$sth = $dbh->prepare($sql_insert) || die $DBI::errstr;
$sth->execute || die $DBI::errstr;
No caso, nesse primeiro email, o objetivo dela é pegar as três instruções SQL e executa-las de uma vez apenas.
Ou seja, executar as três instruções num único execute, como um bloco de instruções SQL.
Acho que para ela, uma orientação de como concatenar as três strings de instruções em uma só e, como fazer o execute entender e executar essa única "stringzona" já é mais do que suficiente para resolver o problema dela.
Eu não tenho recursos para isso.
Muito provavelmente alguém da lista tem de sobra.
----- Original Message -----
From: Patty Silva
To: Cascavel Perl Mongers
Sent: Thursday, January 25, 2007 4:25 PM
Subject: [Cascavel-pm] Res: Res: Duvida $dbh->prepare
Ola Luis..
1. Mensagem de erro;
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NOME'=''BlABLA''' at line 1 at sql line 50.
rollback ineffective with AutoCommit enabled at sql line 57.
Rollback ineffective while AutoCommit is on at sql line 57.
DBD::mysql::db rollback failed: Rollback ineffective while AutoCommit is on at sql line 57.
DBD::mysql::db rollback failed: Rollback ineffective while AutoCommit is on at sql line 57.
2. Nome e versão da sua base de dados;
Mysql - 5.0
3. Nome e versão do seu sistema operacional;
Linux, SUSE 10.2
4. Versão do seu perl;
This is perl, v5.8.8 built for i586-linux-thread-multi
E continua dando o erro :(
Nao consegui excluir as aspas que ele coloca no ?=? "NOME"
[]sss
----- Mensagem original ----
De: Luis Motta Campos <luismottacampos em yahoo.co.uk>
Para: Cascavel Perl Mongers <cascavel-pm em pm.org>
Enviadas: Quinta-feira, 25 de Janeiro de 2007 15:46:57
Assunto: Re: [Cascavel-pm] Res: Duvida $dbh->prepare
On Jan 25, 2007, at 4:36 PM, Patty Silva wrote:
> my $sql = qq/ INSERT INTO $table(Nome,DataHora) VALUES(?,?) ON
> DUPLICATE KEY UPDATE ?=? /;
> So que ele da erro de Sintaxe quando ele atribui o ?=? eu acho q
> ele coloca uma aspas...
> :D Alguem saberia dzer o pq??
Oies, Patty.
Olha, você não está ajudando mais uma vez, não postando mensagens
de erro, nem contando para a gente que base de dados você está
usando. Eu estou implementando código para a sua base de dados sem
nem mesmo saber que base é essa...
E me parece que você deveria passar o valor para o último
placeholder protegido por aspas:
$flag=q{'BLABLA'};
Está vendo? Eu incluí um par de "'" (aspas), mudando o operador de
single-quote do perl (com q{}).
Isso deve "enganar" seu banco de dados, e evitar o erro de sintaxe.
Me envia por favor as informações que faltam:
1. Mensagem de erro;
2. Nome e versão da sua base de dados;
3. Nome e versão do seu sistema operacional;
4. Versão do seu perl;
5. Versão do seu DBI;
6. Nome e versão do DBI::DBD que você está usando.
Putósculos prá você, putamplexos para a galera do Perl... ;-)
--
Luis Motta Campos is software engineer,
perl fanatic evangelist, and amateur {cook, photographer}
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
------------------------------------------------------------------------------
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070125/fa3043e0/attachment.html
Mais detalhes sobre a lista de discussão Cascavel-pm