[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