Veja como adicionar código para verificar e apontar erros nas suas queries, dentro dos seus scripts PHP.
Até conseguir fazer um programa começar a funcionar direito, há um processo — por vezes, longo — de testes e depuração.
Você pode testar as queries no MySQL e usá-las dentro do script apenas quando estiverem tendo o comportamento esperado, conforme mostrei aqui.
Adicionalmente, você pode antecipar os problemas, fazendo a verificação de erros durante a execução do script — o que facilita o seu trabalho.
É fácil incluir código de verificação de erros no PHP (bem como na maioria das outras linguagens de programação).
Neste post, vou usar parte do código de conexão/desconexão ao servidor MySQL, descrito neste artigo —. Portanto, se você ainda for iniciante e quiser entender melhor o seu funcionamento, dê uma olhadinha lá.
Os códigos de checagem vão ajudar você a descobrir onde estão os erros nos seus scripts e a corrigi-los.
Como lidar com erros nas queries MySQL, no PHP
No PHP, para obter informações mais específicas sobre operações relacionadas ao MySQL que fracassaram, use mysql_error()
e mysql_errno()
:
mysql_errno()
— retorna o código numérico do erro, de maneira que você possa consultar um manual para entender melhor o que houve.mysql_error()
— retorna uma descrição padrão do erro.
Ambas as funções podem receber um identificador (opcional), referente à conexão sobre a qual devem dar informações. Se você não quiser usar o identificador, elas irão retornar informações sobre a última conexão, como procedimento padrão.
Veja, em destaque, abaixo, um exemplo de uso:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Página de conexão ao banco de dados</title> </head> <body> <?php # conecta.php - conecta ao servidor MySQL echo "tentando uma conexão... <br />"; if (!($con = @mysql_connect ("localhost", "lobinho", "lupus43"))) die("Não foi possível conectar: ".mysql_errno()." - ".mysql_error()); print ("Conexão bem sucedida <br />"); if (!@mysql_select_db ("tutorial", $con)) die ("Não foi possível selecionar o banco de dados <br />"); mysql_close ($con); print ("Conexão terminada <br />"); ?> </body> </html>
No código, acima, usei um username e senha propositadamente incorretos (para obter um erro de conexão).
O resultado, no navegador é esse:
tentando uma conexão... Não foi possível conectar: 1045 - Access denied for user 'lobinho'@'localhost' (using password: YES)
Após a minha mensagem “Não foi possível conectar”, a função mysql_errno()
fornece o número do erro 1045 e a função mysql_error()
fornece a descrição do erro “Acesso negado ao usuário lobinho… ”
Isto já é suficiente para eu saber onde meu erro se encontra e ir lá corrigir meu código.
O que vimos, neste post, é apenas um esboço do que pode ser feito com as funções de tratamento de erro PHP/MySQL. Use sempre estas funções para, entre outras coisas, informar os usuários com suas próprias mensagens customizadas sobre o que ocorreu ao acessar o banco de dados.
One reply on “Como verificar erros nas queries MySQL dentro de scripts PHP”
Muito bom! script fica limpo sem gambiarra!