Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro.Almeida

como verificar erro ao acessar o banco

Recommended Posts

Boa Tarde, preciso fazer um tratamento de erro no PHP, alguma maneira de verificar se ocorreu um erro ao fazer um SELECT, UPDATE, INSERT, DELETE; ou até mesmo não conseguir se conectar por não encontrar o server mysql.alguém pode dar uma ajuda ?!eu pesquisei e encontrei algo sobre $rst->_errorMsg mas não consegui fazer funcionar...desde já, obrigado !!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tratamento de erro para conexao com o banco:

 

se tiver usando Mysql:

 

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Não foi possível conectar: ' . mysql_error());
}

http://br2.php.net/manual/pt_BR/function.mysql-connect.php

 

Myslqli :

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

http://br.php.net/manual/pt_BR/function.mysqli-connect.php

 

outro jeito:

 

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
  die('Can\'t connect : ' . mysql_error());
}

http://br.php.net/manual/pt_BR/function.is-resource.php

http://br.php.net/manual/pt_BR/function.ge...source-type.php

 

outra maneira é voce pegando pelo numero do erro e vendo na tabela de erros do mysql exemplo:

 

mysql_errno() = :

 

$erros[2005] = "Esse servidor nao existe";
$erros[2003] = "Servidor Mysql desligado";
$erros[1045] = "Usuario ou senha invalido";
$erros[1049] = "Banco de dados nao encontrado";
$erros[1146] = "Erro de sql a tabela nao existe";
$erros[1062] = "Erro campo unico na tabela, nao pode cadastrar pois ele ja existe";

 

para a lista completa acesse o manual do mysql.

 

e para os demais erros

 

quando usar mysql_query ela ira retornar false se a sintase tiver algum erro

 

exemplo:

 

$result = mysql_query('SELECT my_col FROM my_tbl');
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

http://br2.php.net/mysql_query

 

e para testar se o resultado teve sucesso ou retornou alguma linha:

 

Obtém o número de linhas atingidas pela consulta INSERT, UPDATE, REPLACE ou DELETE

http://br2.php.net/manual/pt_BR/function.m...fected-rows.php

 

mysql_num_rows -- Retorna o número de linhas em um resultado do select

http://br2.php.net/manual/pt_BR/function.mysql-num-rows.php

 

retorna o ultimo id

http://br2.php.net/manual/pt_BR/function.mysql-insert-id.php

 

qualquer duvida só postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grato,

 

foi de grande ajuda !!

Para quem quiser um exemplo segue abaixo como fiz:

 

 

 

<FAÇA A SUA SENTENÇA SQL E ACESSE O BANCO AQUI>$numeroErro = mysql_errno();$strErro = mysql_error();if($numeroErro > 0){	echo "<b>Ocorrêu um erro ao acessar o Banco de dados MySql:</b>";	echo "<br><br>";	echo "<b>Número do Erro:</b> " . $numeroErro;	echo "<br>";	echo "<b>Descrição do Erro:</b> " . $strErro;}

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso tem algo melhor para fazer isso:http://br2.php.net/manual/pt_BR/function.s...ror-handler.php

Pois é... preciso testar não só se um servidor MySql está ok, mas também se um SQL Server também.Com essa função que me passou (set_error_handler), tem como verificar isso?Se tiver poderia dar um exemplo simples, pois no site do php.net me parace um tanto quanto complexo.Obrigado.Leandro Almeida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.