2016-10-28 2 views
-1

Ich versuche, Verbindungsfehler auf PHP7 mit mysql zu fangen, aber es funktioniert nicht ...MySQLi, PHP - versuchen {....} catch (...) {....} funktioniert nicht

ich verstehe nicht, was falsch ist: S ähnliche Stücke dieses Codes, die ich auch nutzen arbeiten ...

Es muss ein grundlegendes Detail, was ich vergesse ... ich muß werfen $this->MyErrorFunction($e)

Kann jemand helfen?

public function connect($credentialset) { 
    #$this->driver = new \mysqli_driver(); 
    #$this->driver->report_mode = MYSQLI_REPORT_ALL; 
    mysqli_report(MYSQLI_REPORT_STRICT); 
    try { 
     $this->conn->real_connect(
       isset(self::$credentials[$credentialset]['host'])  ? self::$credentials[$credentialset]['host']  : ini_get("mysqli.default_host"), 
       isset(self::$credentials[$credentialset]['user'])  ? self::$credentials[$credentialset]['user']  : ini_get("mysqli.default_user"), 
       isset(self::$credentials[$credentialset]['password']) ? self::$credentials[$credentialset]['password'] : ini_get("mysqli.default_pw"), 
       isset(self::$credentials[$credentialset]['database']) ? self::$credentials[$credentialset]['database'] : "", 
       isset(self::$credentials[$credentialset]['port'])  ? self::$credentials[$credentialset]['port']  : ini_get("mysqli.default_port"), 
       isset(self::$credentials[$credentialset]['socket'])  ? self::$credentials[$credentialset]['socket']  : ini_get("mysqli.default_socket"), 
       isset(self::$credentials[$credentialset]['flag'])  ? self::$credentials[$credentialset]['flag']  : null 
     ); 
     $charset = isset(self::$credentials[$credentialset]['charset']) ? self::$credentials[$credentialset]['charset'] : 'utf8mb4'; 
     $this->conn->set_charset($charset); 
    } catch (Exception $e) { 
     $this->MyErrorFunction($e); 
    } 
} 

Fatal error: Uncaught mysqli_sql_exception: Access denied for user 'myinvaliduser'@'10.241.84.65' (using password: YES) in /oxygen-v2/php-bin/datadrivers/mysqlz/mysqlz.php on line 77

Antwort

-1

\ o/ ich war sicher, dass Fehler nur eine dumme Sache war!

} catch (Exception $e) { 
    $this->MyErrorFunction($e); 
} 

durch diesen Code:

} catch (\mysqli_sql_exception $e) { 
    $this->MyErrorFunction($e); 
} 

Anstelle von Exception, ich brauche mysqli_sql_exception im Hauptnamensraum "\"

werfen

löste dieses Stück Code zu ersetzen