php mysql_connect Aviso desativado

Eu tenho o script do PHP que deve tentar conectar-se ao DB no site local. Se o database local não estiver disponível, ele deve tentar se conectar ao DB no servidor remoto.

$dblink = mysql_connect(DBHOST_LOCAL, DBUSER, DBPASS) or $RC = 1; if($RC) { $dblink = mysql_connect(DBHOST_REMOTE, DBUSER, DBPASS) or die('Could not connect'.mysql_error()); } 

O problema é que eu não quero exibir mensagem de aviso na página se a conexão falhar pela primeira vez. Existe alguma maneira de desativar a mensagem de aviso apenas para a function mysql_connect ()?

Sim, adicione um sinal de @ como para suprimir mensagens de aviso / erro, então faça o erro uma vez que seja seu:

 $dblink = @mysql_connect(DBHOST_LOCAL, DBUSER, DBPASS); if (!$dblink) { $dblink = @mysql_connect(DBHOST_REMOTE, DBUSER, DBPASS); } if (!$dblink) { $message = sprintf( "Could not connect to local or remote database: %s", mysql_error() ); trigger_error($message); return; } 

Tome cuidado para que você precise lidar com todos os relatórios de erros do seu próprio. Esse código é difícil de depurar no caso de você cometer um erro.

você pode configurar o relatório de erros reportando error_reporting(0); para desativar erros e avisos para a página speacific

basta definir de acordo com sua necessidade

 # config.ini # PHP error reporting. supported values are given below. # 0 - Turn off all error reporting # 1 - Running errors # 2 - Running errors + notices # 3 - All errors except notices and warnings # 4 - All errors except notices # 5 - All errors 

Doc

Basta colocar a cabeça em uma página como essa

 < ?php error_reporting(E_ERROR | E_WARNING | E_PARSE); ?> 

deixe-me saber se posso ajudá-lo mais.

A solução adequada é desativar a exibição de erros, avisos e avisos de PHP para o usuário. Isso pode ser feito através da configuração display_errors no seu arquivo de configuração php.ini:

 display_errors = Off 

Também pode ser configurado em tempo de execução via ini_set() :

 ini_set('display_errors', '0'); 

Do Manual :

display_errors
Isso determina se os erros devem ser impressos na canvas como parte da saída ou se devem ser ocultos ao usuário.

Fazer isso impediria qualquer usuário de ver mensagens de erro de PHP sensíveis, mas ainda assim, eles podem ser impressos no arquivo de log.

O uso do método de supressão @ faria o que você queria, mas ainda permitiria que outros erros / avisos de PHP fossem impressos para o usuário, o que é um problema de segurança porque esses erros podem conter informações confidenciais que não devem ser expostas.

Você não pode usar o seguinte método:

 if (!$connection = mysql_connect(DBHOST_LOCAL, DBUSER, DBPASS)) { die('And here we connect to the other server'); } 

Quando a conexão falha, ele retorna um booleano, o que fará com que a instrução if seja verdadeira.