Como "ocultar" os erros do MySQL?
Nenhuma descrição foi enviada.
comentários (0)
suspender
Lista de Respostas:
23/07/2003 1:08am
(~21 anos atrás)
(~21 anos atrás)
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!
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!
25/03/2002 4:50pm
(~22 anos atrás)
(~22 anos atrás)
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","","");
$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","","");
25/03/2002 10:49pm
(~22 anos atrás)
(~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. :)
10/04/2002 2:08pm
(~22 anos atrás)
(~22 anos atrás)
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. */
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. */
12/04/2002 6:43am
(~22 anos atrás)
(~22 anos atrás)
É só utilizar o @ para esconder o erro:
$cone=@mysql_connect($host,$user$,$passwd);
$cone=@mysql_connect($host,$user$,$passwd);
18/04/2002 10:14am
(~22 anos atrás)
(~22 anos atrás)
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
Mas isso não é recomendado, pois se ocorrer algum erro, não tem como vc ver qual erro foi para arrumar.
[]'s
23/04/2002 5:24pm
(~22 anos atrás)
(~22 anos atrás)
Basta usar o operador de supressão de erro @!
[]'s
Eduardo Dias
[]'s
Eduardo Dias
16/05/2002 6:35pm
(~22 anos atrás)
(~22 anos atrás)
essas respostas sao muito xiquis :)
usa $melancia_legal = @mysql_query();
se num der malz pq eu to começando
usa $melancia_legal = @mysql_query();
se num der malz pq eu to começando
20/05/2002 5:14pm
(~22 anos atrás)
(~22 anos atrás)
Isso serve p/ erros de php mesmo?
Por exemplo com includes?
Por exemplo com includes?
23/09/2002 12:26pm
(~22 anos atrás)
(~22 anos atrás)
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"
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"
03/12/2002 1:57pm
(~22 anos atrás)
(~22 anos atrás)
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.
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.
11/02/2003 8:36am
(~22 anos atrás)
(~22 anos atrás)
$res = @mysql_query($select);
if (mysql_error() ) {
echo "deu pau..."
}
if (mysql_error() ) {
echo "deu pau..."
}
27/09/2003 10:40am
(~21 anos atrás)
(~21 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
16/11/2003 12:49pm
(~21 anos atrás)
(~21 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
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
12/01/2004 12:43pm
(~21 anos atrás)
(~21 anos atrás)
Tanto no mysql como no sql é só colocar @ na frente das consultas, por exemplo:
$r=@mssql_num_rows($sql)
$r=@mssql_num_rows($sql)
12/02/2004 3:01pm
(~21 anos atrás)
(~21 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
$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
10/03/2004 10:00am
(~21 anos atrás)
(~21 anos atrás)
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
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
10/04/2004 6:39am
(~20 anos atrás)
(~20 anos atrás)
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
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
11/07/2004 12:39am
(~20 anos atrás)
(~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...
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...
13/07/2004 12:46pm
(~20 anos atrás)
(~20 anos atrás)
Dê uma olhada no manual do php na função error_reporting
26/01/2005 11:10am
(~20 anos atrás)
(~20 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)
configure o php.ini(caso vc não queira que outrso tipos de mensagens de erro não aparecam)
17/04/2005 7:04pm
(~19 anos atrás)
(~19 anos atrás)
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.
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.