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

<form> Formular

CSS - Transparenter Farbverlauf

PHP - Trennen von Buchstaben und Zahlen mit scanf()

JavaScript - Zeit-Differenz ermitteln

MySQL - Datum vom Timestamp anzeigen