[Cascavel-pm] Não dá erro quando id não existe (conexão com mysql)

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Quarta Fevereiro 9 16:29:48 PST 2005


João Gabriel wrote:
> Fala pessoal. Pularam muito carnaval? :D

   Ô... demais... só dava eu na Marquês de Sapucaí...
   Sai em 15 escolas de samba, como destaque, no Rio e em Sampa.
   Vocês não me viram na televisão?
   </sarcasmo>

[snip]
> $sth = $dbh->prepare("DELETE FROM `tabela` WHERE id='9999'");
[snip]

> Se repararem, o SQL faz a seguinte condição:
> deletar da tabela quando id for igual a "9999".
> 
> só que não existe um id igual a "9999" em minha tabela... então teria
> que dar erro... mas não dá.
> 
> o que eu faço?
> 

   Vai aprender SQL, que ajuda muito!
   O que você disse (em bom SQL) é como "João, remova as linhas que 
contém '9999' no campo 'id' da tabela 'tabela'". O João começa a 
procurar nas linhas da "tabela" as que tem campo "id" igual a 9999, e, 
chegando ao final, diz "nenhuma linha foi afetada pelo seu comando, 
mestre!".

   Pergunta: isso é um erro?
   Resposta: O Nilson Santos está correto (dedo rápido, hein, Nilson?)! 
Isso nunca poderia ser um erro.

   Por outro lado, é certamente um erro não verificar quantas linhas 
foram afetadas pelo seu comando SQL ou qual o status retornado pelo 
último comando (não, não basta dizer "RaiseError" na inicialização do 
DBI, meu caro...)

   Tente melhorar sua percepção da comunicação com o banco de dados. Ela 
é cheia de detalhes chatos, que podem fazer a diferença entre saber o 
que está acontecendo e simplesmente tentar adivinhar programaticamente o 
que se passou desde o último time-slice.

   Como conhecer os status e aprender como verificar o que aconteceu com 
seu comando SQL? Leia o manual do DBI, está tudo lá.

   Boa sorte, e putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BSc in Comp Science,
  PerlMonk [SiteDocClan], Sao Paulo PM Leader,
  Unix Sys Admin && Certified Oracle DBA
  http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



Mais detalhes sobre a lista de discussão Cascavel-pm