Prepared Statements Verbindens Test

DerEisige

Erfahrenes Mitglied
hallo ich hab mal wider ein kleines Problem

ich steig Grad auf Prepared Statements um aber mein Verbindens Test funktioniert nicht richtig den wenn die Verbindung nicht hergestellt werden kann wird keine Fehlermeldung ausgegeben.

PHP:
$dbc = new PDO("mysql:host=localhost;dbname=$SQLDatenbank;charset:UTF-8", $SQLUser, $SQLPassword ) 
        or die("Es konnte keine Verbindung zum Datenbankserver hergestellt werden!");

Danke schon mal im voraus.
mfg. derEisige
 
PDO ist eine Klasse. Wenn ein Fehler auftritt, wird eine Exception geworfen. Diese müsst du abfangen:

PHP:
$pdo = null;
try
{
  $pdo = new PDO("mysql:host=localhost;dbname=$SQLDatenbank;charset:UTF-8", 
                            $SQLUser, $SQLPassword );
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Set Errorhandling to Exception
}
catch( PDOException $ex )
{
  die( $ex->getMessage() );
}

Sobald man Klassen verwendet, kann man und sollte man auch die Vorteile des Exception-Handling verwendet.
 
okay danke dir saftmeister das mit den Klassen und den Exception-Handling wusste ich bis jetzt noch nicht, schon wider was sinnvolles gelernt. Aber wie kann ich bei der Methode meine eigenen Fehler Text aus geben da ich nicht will das die Datenbank und so ausgegeben wird (SQLSTATE[28000] [1045] Access denied for user '22312m10929_5'@'localhost' (using password: YES)).
 
Zuletzt bearbeitet:
Indem du folgenden Skriptteil durch eine eigene Fehlerroutine ersetzt:
PHP:
catch(PDOException $e) {
  die($e->getMessage()); # das entfernen und eigene Fehlermeldung ausgeben
}
 
Zurück