-1

Como "ocultar" os erros do MySQL?

criado por Ciro Feitosa em 25/03/2002 4:50pm
Nenhuma descrição foi enviada.

Lista de Respostas:

+1
23/07/2003 1:08am
(~20 anos atrás)
José Oliveira respondeu:
Não se deve exibir erros em sites em produção, por isso não acho correto usar die() pra tatar alguma excessão como erro de banco. Só se deve usar esse tipo de desvio de fluxo caso o erro comprometa todo o funcionamento do site (Não conseguir dar um include, por exemplo).

Eu recomendo o uso da função error_reporting(), para alterar a diretiva de erro do php, em produção deve-se usar erro_reporting(0), que server para barrar todo os erros (Cuidado com os fatal errors, se acontecer algum você não será informado) e em desenvolvimento usar error_reporting(E_ALL) que informa qualquer espécie de erro, desde os notices mais simples por estouro de array até fatal errors.

A @ deve ser usada quando você não tem certeza de que uma expressão funcionará sempre da meneira correta, mas mesmo nao funcionando nao comprometera o funcionamento do site. Por ex: vc nem sempre pode passar um parametro "codigo" pelo metodo get. Você pode fazer a seguinte construção:

$codigo = @$_GET['codigo'];

Como vc nao tem certeza de que sempre passar o parametro get, suprirá a mensagem de erro de que o indice nao existe no array!

0
25/03/2002 4:50pm
(~22 anos atrás)
Ciro Feitosa respondeu:
Deseja "ocultar" os erros apresentados pelo MySQL durante um mysql_connect(), ou mysql_select_db(), ou ainda mysql_query() ??? Antes destas funções use @, exemplo:
$conexao = @mysql_connect("localhost","","") or die("Erro na conexão"); // neste caso se existir algum erro, de qualquer forma, ele só mostrará na tela: "Erro na conexão", se desejar não mostrar nada, apenas use @mysql_connect("localhost","","");

0
25/03/2002 10:49pm
(~22 anos atrás)
É possível ocultar não só erros gerados pela biblioteca do mysql como também muitas outras funções, bastando colocar o @ a frente da função... Outra forma de ocultar estes erros é a configuração no arquivo php.ini onde refere-se ao error_reporting, sendo possível configurar para que não seja apresentado nenhum tipo de erro. Mas vale lembrar não é muito aconselhavel esta configuração em tempo de desenvolvimento, pois dificulta o debug do código que está sendo desenvolvido. :)

0
10/04/2002 2:08pm
(~22 anos atrás)
Eduardo Dias respondeu:
Como jah foi comentado em outras colaborações, o uso do operador de supressão de erro: @ pode ser utilizado naum somente em funções mysql mas também na frente de qualquer operação efetuada.

Para utilizar sempre coloque o operador no inicio da função ou operação como no exemplo a seguir:

$fp = @fopen("file.txt", "r");
/*a utilização do operador @ suprirá um erro no caso do arquivo não existir ou você não ter privilégio para esta operação. */

0
12/04/2002 6:43am
(~22 anos atrás)
É só utilizar o @ para esconder o erro:
$cone=@mysql_connect($host,$user$,$passwd);

0
18/04/2002 10:14am
(~22 anos atrás)
Mario André respondeu:
Coloca @ na frente de qualquer comando.

Mas isso não é recomendado, pois se ocorrer algum erro, não tem como vc ver qual erro foi para arrumar.

[]'s

0
23/04/2002 5:24pm
(~22 anos atrás)
Eduardo Dias respondeu:
Basta usar o operador de supressão de erro @!


[]'s

Eduardo Dias

0
16/05/2002 6:35pm
(~22 anos atrás)
essas respostas sao muito xiquis :)
usa $melancia_legal = @mysql_query();
se num der malz pq eu to começando

0
20/05/2002 5:14pm
(~22 anos atrás)
Felipe Pessoto respondeu:
Isso serve p/ erros de php mesmo?
Por exemplo com includes?

0
23/05/2002 7:30pm
(~22 anos atrás)
Thiago Cardoso respondeu:
Só usar @ tipo:
@mysql_connect

0
23/09/2002 12:26pm
(~21 anos atrás)
Neander Araújo respondeu:
Meu Jovem Ciro,
Veja o ponto negativo de se usar "@" antes dos comandos:

Supondo que vc tenha um cliente, ele te liga para te falar que uma pagina nao quis trazer o resultado(quer dizer, o select nao funcionou). Aí vc pergunta, Qual erro está aparecendo????

hahah vc dançou mesmo, se vc usou a "@" nao aparece erro algum. Certo??

Usando a string "@" da maneira correta:
Procure criar para cada tipo de funçao uma mensagem de erro traduzida,
EX:
$conexao = @mysql_connect("localhost","user","senha") or die("Exceção 1: Não Foi Possível Estabelecer a Conexão"); // neste caso vc estabeleceu uma mensagem de exceção(erro) traduzida para o comando connect.

Obs: Meu site, seu site, nosso site... ...Nao contém erros! certo?? Isso é básico na programação, nosso site contem sim é "exceções". Use sempre essa expressao!

Resumindo: Para cada "@" que vc for usar para suprimir suas exceções, coloque o "or die" com um "erro camarada"

0
03/12/2002 1:57pm
(~21 anos atrás)
leo genilhu respondeu:
alem de usar o @ na frente de todas as funcoes do mysql
vc pode criar uma pagina de erro especifica para cada funcao
e verificar o valor retornado pelas funcoes para exibir ou nao
esta pagina. so pra lembra o valor retornado e 0 e 1.

0
11/02/2003 8:36am
(~21 anos atrás)
Cléver Anjos respondeu:
$res = @mysql_query($select);
if (mysql_error() ) {
echo "deu pau..."
}

0
27/09/2003 10:40am
(~20 anos atrás)
é muito bom usar o @, pois assim o usuario do site não verá os erros caso o db estaja fora ou não esteja funcionando

0
16/11/2003 12:49pm
(~20 anos atrás)
Opa...
Tem como eu ocultar os erros ocorridos em qualquer página do meu site, e fazer um log de erros, num arquivo "error.log" com os detalhes todos, tipo:
DATA | HORA | IP_do_USUARIO | DESCRIÇÃO_DO_ERRO |--> PAGINA_QUE_OCORREU_O_ERRO_?_E_AS_QUERY_STRINGS_QUE_EXISTIREM_

mais ou menos como esse log q fiz de visitação, soh q tah em asp...
www.paxlibris.com.br/visitors.log


vlw.. aguardo resposta...
flw

0
12/01/2004 12:43pm
(~20 anos atrás)
Tanto no mysql como no sql é só colocar @ na frente das consultas, por exemplo:

$r=@mssql_num_rows($sql)

0
12/02/2004 3:01pm
(~20 anos atrás)
Coloque uma @ na frente da função exemplo
$conect = @mysql_connect('host','usuario','senha');
isso fará com que o php não reporte os erros do mysql

Obs: a @ pode ser usada para qualquer função

0
10/03/2004 10:00am
(~20 anos atrás)
Rodrigo Paiva respondeu:
coloque um @ na frente da função que você quer que não exiba erro.

por exemplo:

mail($para, $assunto, $corpo);

caso falhasse mostraria um erro, mas...

@mail($para, $assunto, $corpo);

caso falhasse, não mostraria erro algum


Abraços

0
10/04/2004 6:39am
(~20 anos atrás)
Alessander Thomaz respondeu:
Exister duas formas, uma desativar erros no php. A outra é não errar, risos.

O que é possível é ocultar erros de qualquer função como falaram acima. Usando o @.
Mesmo assim, procure programar com cuidado, para evitar ao máximo erros.

Um erro de mysql é algo grave, pois uma instrução pode não trazer valores, mas dar erro é porque não foi bem feita e suprimir o erro pode maquiar o problema.
Pense nisso.

Alessander

0
11/07/2004 12:39am
(~20 anos atrás)
pra ocultar os erros dados no mysql é simples, retire todos os "or die"

e executados por if também é necessário tirar o else

exemplo:

$sql = mysql_query("INSERT INTO tabela (campo) VALUES ($campo)");
if($sql){
echo "Adicionado com sucesso";
}else{
echo "Ocorreu um erro";
}

ficaria assim:

$sql = mysql_query("INSERT INTO tabela (campo) VALUES ($campo)");
if($sql){
echo "Adicionado com sucesso";
}

dai caso de erro naum falará nada, caso naum de ele adiciona, serve para isso tb, o mysql_query update, select e etc...

0
13/07/2004 12:46pm
(~19 anos atrás)
Dê uma olhada no manual do php na função error_reporting

0
11/12/2004 6:15am
(~19 anos atrás)
Reginaldo Castardo respondeu:
Use o @ antes da função

0
26/01/2005 11:10am
(~19 anos atrás)
use o @ antes das funções do mysql
configure o php.ini(caso vc não queira que outrso tipos de mensagens de erro não aparecam)

0
17/04/2005 7:04pm
(~19 anos atrás)
John Marques respondeu:
fera você pode usar o controlador de erro @
mais respondendo a um rapaz q disse.

se um cliente falar para vc q tem um erro no script,
eai se ocorre um erro como vc vai alterar?

velho vc pode muito bem usar

o @ mais operador(!) com controle
(if) junto a função (die)

ex:

if(!$con = @mysql_connect($server,$user,$senha)){
die("Não foi possível se conectar ao banco de dados");
}

die tem por função para o script e imprimir a mensagem contido nele

mais naum tiro a razão no programador q citei ele tb está certo mais a outras formas de se saber se ocorreu um erro.

0
12/07/2005 10:04am
(~18 anos atrás)
r fgi respondeu:
e so colocar isso na frete
#Mysql

Nova Resposta:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)