PHP: Connexion de PHP à MySQL avec PDO

Cette documentation fait partie du guide Connexion à MySQL. Consultez le guide complet ici : Apprenez comment vous connecter à MySQL depuis PHP en utilisant 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 bénéficiez de la configuration automatique des certificats HTTPS pour une sécurité renforcée.
  • Profitez de la tranquillité d'esprit avec des sauvegardes automatiques, des mises à jour en un clic, et une tarification simple, transparente et prévisible.
  • Obtenez des performances optimales et une sécurité robuste grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il ne faut que 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 problèmes potentiels de certificat SSL qui peuvent survenir si votre système n'a pas accès aux certificats CA.

<?php

$hostname = '<XXXXXX>.stackhero-network.com';
$user = 'root';
$password = '<yourPassword>';
$database = 'root'; // Pour les environnements de production, envisagez de 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 comme "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 exécutant la version ' . $version[0] . "\n";

?>

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 contienne pas les certificats CA nécessaires.

Si vous avez accès au système exécutant votre code PHP, vous pouvez installer les certificats comme suit :

  1. Sur Ubuntu/Debian, exécutez sudo apt-get install ca-certificates
  2. Sur Alpine Linux, exécutez apk add ca-certificates

Si vous n'avez pas d'accès direct pour installer ces certificats sur votre système, vous pouvez installer le certificat manuellement :

  1. Téléchargez le certificat sur votre ordinateur : https://letsencrypt.org/certs/isrgrootx1.pem
  2. Ajoutez le fichier isrgrootx1.pem à vos fichiers de projet PHP.
  3. Commentez la ligne PDO::MYSQL_ATTR_SSL_CAPATH => '/etc/ssl/certs/'
  4. Décommentez la ligne PDO::MYSQL_ATTR_SSL_CA => 'isrgrootx1.pem'