PHP: Verbindung von PHP zu MySQL mit PDO

Diese Dokumentation ist Teil des Verbindung zu MySQL-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Erfahren Sie, wie Sie sich von PHP aus mit MySQL unter Verwendung von MySQLi und PDO verbinden.

👋 Willkommen in der Stackhero-Dokumentation!

Stackhero bietet eine einsatzbereite PHP-Cloud-Lösung, die zahlreiche Vorteile bietet, darunter:

  • Deployen Sie Ihre Anwendung in Sekunden mit einem einfachen git push.
  • Verwenden Sie Ihren eigenen Domainnamen und profitieren Sie von der automatischen Konfiguration von HTTPS-Zertifikaten für erhöhte Sicherheit.
  • Genießen Sie beruhigende automatische Backups, Ein-Klick-Updates und eine einfache, transparente und vorhersehbare Preisgestaltung.
  • Erhalten Sie optimale Performance und robuste Sicherheit dank einer privaten und dedizierten VM.

Sparen Sie Zeit und vereinfachen Sie Ihr Leben: Es dauert nur 5 Minuten, um die PHP-Cloud-Hosting-Lösung von Stackhero auszuprobieren!

PDO bietet eine flexible Methode, um PHP mit MySQL zu verbinden. Das folgende Beispiel zeigt, wie PDO verwendet wird, um eine Verbindung herzustellen. Es behandelt auch potenzielle SSL-Zertifikatsprobleme, die auftreten können, wenn Ihr System keinen Zugriff auf CA-Zertifikate hat.

<?php

$hostname = '<XXXXXX>.stackhero-network.com';
$user = 'root';
$password = '<yourPassword>';
$database = 'root'; // Für Produktionsumgebungen sollten Sie eine dedizierte Datenbank und einen Benutzer erstellen

$dsn = "mysql:host=$hostname;dbname=$database";

$options = array(
  // Wenn Sie einen Fehler wie "Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1..." erhalten,
  // könnte dies daran liegen, dass im Verzeichnis /etc/ssl/certs/ CA-Zertifikate fehlen
  PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/',
  // PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem',
  PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => true,
);

$pdo = new PDO($dsn, $user, $password, $options);

$stm = $pdo->query('SELECT VERSION()');
$version = $stm->fetch();

echo 'Sie sind mit einer Datenbank verbunden, die Version ' . $version[0] . "\n";

?>

Wenn Sie einen Fehler wie Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1. OpenSSL Error messages: error:0A000086:SSL routines::certificate verify failed sehen, liegt es wahrscheinlich daran, dass das Verzeichnis /etc/ssl/certs/ Ihres Systems nicht die erforderlichen CA-Zertifikate enthält.

Wenn Sie Zugriff auf das System haben, das Ihren PHP-Code ausführt, können Sie die Zertifikate wie folgt installieren:

  1. Auf Ubuntu/Debian führen Sie sudo apt-get install ca-certificates aus
  2. Auf Alpine Linux führen Sie apk add ca-certificates aus

Wenn Sie keinen direkten Zugriff haben, um diese Zertifikate auf Ihrem System zu installieren, können Sie das Zertifikat manuell installieren:

  1. Laden Sie das Zertifikat auf Ihren Computer herunter: https://letsencrypt.org/certs/isrgrootx1.pem
  2. Fügen Sie die Datei isrgrootx1.pem zu Ihren PHP-Projektdateien hinzu.
  3. Kommentieren Sie die Zeile PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/' aus
  4. Heben Sie die Kommentierung der Zeile PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem' auf