PHP - Verbindungsfehler zur Datenbank anzeigen

Verbindungsfehler zur DB sollte man nicht direkt auf der Seite anzeigen, denn PHP gibt oft zu viele Daten aus.

SQLSTATE[HY000] [1045] Access denied 
for user 'DB14572'@'U14572-example.com' (using password: YES)

Besser ist es, diese Fehler abzufangen und eine individuelle Fehlermeldung auszugeben.


<?php

// Verbindungsdaten zur Datenbank
$DB_HOST "localhost"// Host-Adresse
$DB_NAME "test"// Datenbankname
$DB_BENUTZER "root"// Benutzername
$DB_PASSWORT ""// Passwort

$OPTION = [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"];

try {
 
// Verbindung zur Datenbank aufbauen
 
$db = new PDO("mysql:host=" $DB_HOST ";dbname=" $DB_NAME,
  
$DB_BENUTZER$DB_PASSWORT$OPTION);
}
catch (
PDOException $e) {
 
// Bei einer fehlerhaften Verbindung
 
if ($FEHLER_VERBINDUNG  == "ja") {
  echo 
'<h3>Nachricht</h3>' .
   
'<p>Die Verbindung zur Datenbank ist fehlgeschlagen!';
  
$fehler = ["2002" => 'Die Host-Adresse ist',
                 
"1049" => 'Der Datenbankname ist',
                 
"1045" => 'Der Benutzername oder das Passwort sind'];
  
$code $e->getCode();
  if (
in_array($codearray_keys($fehler))) {
   echo 
'<br>' $fehler[$code] . ' unbekannt!</p>';
  }
 }
 exit;
}
?>

Ausgabe:
Die Verbindung zur Datenbank ist fehlgeschlagen!
Der Benutzername oder das Passwort sind unbekannt!

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Bausteinen (Snippets) aus den Bereichen CSS, PHP, JavaScript und MySQL.

CSS - Navigation mit :target auf und zumachen

PHP - Trennen von Buchstaben und Zahlen mit scanf()

JavaScript - Browser Infos

MySQL - Eintrag überschreiben