PHP: Connecter PHP à MySQL avec PDO
Cette documentation fait partie du guide Se connecter à MySQL. Consultez le guide complet ici : Découvrez comment connecter PHP à MySQL avec MySQLi et PDO.
👋 Bienvenue sur la documentation de Stackhero !
Stackhero propose une solution PHP cloud prête à l'emploi qui offre de nombreux avantages, notamment :
- Déployez votre application en quelques secondes avec un simple
git push.- Utilisez votre propre nom de domaine et profitez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
- Bénéficiez de la sauvegarde automatique, des mises à jour en un clic, ainsi que d'une tarification simple, transparente et prévisible.
- Profitez d'une performance optimale et d'une sécurité renforcée grâce à une VM privée et dédiée.
Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution PHP cloud hosting de Stackhero !
PDO offre une méthode flexible pour connecter PHP à MySQL. L'exemple ci-dessous illustre comment utiliser PDO pour établir une connexion. Il aborde également les éventuels problèmes de certificat SSL qui peuvent survenir si votre système ne dispose pas des certificats d'autorité (CA).
<?php
$hostname = '<XXXXXX>.stackhero-network.com';
$user = 'root';
$password = '<yourPassword>';
$database = 'root'; // En environnement de production, pensez à créer une base de données et un utilisateur dédiés
$dsn = "mysql:host=$hostname;dbname=$database";
$options = array(
// Si vous rencontrez une erreur du type "Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1...",
// cela peut être dû à l'absence de certificats CA dans le répertoire /etc/ssl/certs/
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 'Vous êtes connecté à une base de données en version ' . $version[0] . "\n";
?>
Gérer l'erreur "SSL operation failed with code 1"
Si vous voyez une erreur telle que Uncaught PDOException: PDO::__construct(): SSL operation failed with code 1. OpenSSL Error messages: error:0A000086:SSL routines::certificate verify failed, il est probable que le répertoire /etc/ssl/certs/ de votre système ne contient pas les certificats CA nécessaires.
Si vous avez accès au système qui exécute votre code PHP, vous pouvez installer les certificats comme suit :
- Sur Ubuntu/Debian, exécutez
sudo apt-get install ca-certificates - Sur Alpine Linux, exécutez
apk add ca-certificates
Si vous n'avez pas la possibilité d'installer ces certificats directement sur votre système, vous pouvez installer le certificat manuellement :
- Téléchargez le certificat sur votre ordinateur : https://letsencrypt.org/certs/isrgrootx1.pem
- Ajoutez le fichier
isrgrootx1.pemdans les fichiers de votre projet PHP. - Commentez la ligne
PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/' - Décommentez la ligne
PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem'