Domanda

I have this code snippet:

$conn = mysql_connect($host, $usr, $pwd);

How can I prevent PHP from printing an error message when MySQL access is denied?

I need exactly this syntax but nothing works for me.

I tried $conn = mysql_connect($host, $usr, $pwd) or false; and $conn = mysql_connect($host, $usr, $pwd) || false; and the following:

try {
    $conn = mysql_connect($host, $usr, $pwd);

    if(!$conn) {
        throw new Exception('Failed');
    }
} catch(Exception $e) {
    // ...
}

PHP always prints an error message that the connection failed. But I just want to return false, if it failed.

È stato utile?

Soluzione

I don't know why you want to, but you can add a @ to surpress php errors?

see: http://php.net/manual/en/language.operators.errorcontrol.php

Altri suggerimenti

Error printing should not be activated on a production server. Consider changing your php.ini configuration to log error instead of displaying it.

Using @ to silent error message is not a good solution.

You shouldn't really be using mysql_connect in PHP 5, as its now deprecated in favour of mysqli and PDO.

But you can probably silence the warning generated by mysql_connect by prefixing with @:

@mysql_connect()

The @ suppresses errors. And also set error reporting error_reporting(0); to turn off all errors. Also check out mysqli

Docs

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top