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 PHP Cloud Plattform, die für schnelle und zuverlässige Deployments entwickelt wurde:
- Deployen Sie Ihre PHP-Anwendung in wenigen Sekunden mit einem einfachen
git pushin die Produktion.- Verwenden Sie Ihre eigene Domain – automatische HTTPS-Zertifikate werden für Sie eingerichtet. Es sind keine manuellen Schritte erforderlich.
- Verlassen Sie sich auf automatische Backups, One-Click-Updates und eine transparente, vorhersehbare Preisgestaltung. Stackhero übernimmt diese Aufgaben, damit Sie sich auf Ihren Code konzentrieren können.
- Profitieren Sie von hoher Performance und Sicherheit auf einer privaten, dedizierten Infrastruktur, die speziell für Ihre Anwendungen konzipiert ist.
Optimieren Sie Ihren Workflow und sparen Sie Zeit. Der Einstieg in das PHP Cloud Hosting von Stackhero dauert nur wenige Minuten.
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";
?>
Umgang mit dem Fehler "SSL operation failed with code 1"
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:
- Auf Ubuntu/Debian führen Sie
sudo apt-get install ca-certificatesaus - Auf Alpine Linux führen Sie
apk add ca-certificatesaus
Wenn Sie keinen direkten Zugriff haben, um diese Zertifikate auf Ihrem System zu installieren, können Sie das Zertifikat manuell installieren:
- Laden Sie das Zertifikat auf Ihren Computer herunter: https://letsencrypt.org/certs/isrgrootx1.pem
- Fügen Sie die Datei
isrgrootx1.pemzu Ihren PHP-Projektdateien hinzu. - Kommentieren Sie die Zeile
PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/'aus - Heben Sie die Kommentierung der Zeile
PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem'auf