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 Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<bdo> Textrichtung

CSS - Ladeanimation ohne Bild-Grafik

PHP - Lotto (6 aus 49)

JavaScript - Eine Animation ab einer bestimmten Scroll-Position starten

MySQL - Datensätze über Checkbox-Auswahl suchen

Schlagzeile entscheidet
Maßgeblich beeinflusst wird dieser erste Eindruck durch die auf Ihrer Website verwendeten Headlines (Schlagzeilen): Wenn Sie Teaser, also Anreißer-Texte, verwenden, dann entscheidet die verwendete Headline oft, ob man zum Artikel weiterklickt. Die über einer Seite platzierte Haupt-Headline ist ein wichtiges Kriterium für die Entscheidung, ob weitergelesen wird oder nicht. Auch die im Text verwendeten Subheadlines spielen dabei eine große Rolle.