info2gestion

PHP

Connexion à une base de données mysql avec pdo

Connection à mysql avec php pdo version 1

Exemple de fichier de configuration php config_local.php, config_svr01 ou config_svr02...


<?php
define('SVR_IP', '192.168.1.10');
define('BDD', 'bdd_01');
define('BDD_PORT', 3306);
define('UTILISATEUR', 'utilisateur_01');
define('MOTDEPASSE', 'mdp_01');
define('CHRSET', 'utf8mb4');
?>

Ce fichier définit le serveur qui héberge la base de données et les paramètres d'accès à la base de données.

Exemple de fichier de sélection du serveur php fichier_de_connexion.php.
Il est possible de combiner les informations de configuration et de connexion dans le même fichier...


<?php

$SVR_ERR = "";

switch ($_SERVER['HTTP_HOST'] == 'localhost' ||
        $_SERVER['HTTP_HOST'] == '127.0.0.1') { // 1
 case 1:
  include_once('conn_svr_local.php');
  ini_set('display_errors', 1);
  error_reporting(E_ALL);
 case 0:
  $SVR_ERR = "erreur de connexion au serveur";
}

switch ($_SERVER['HTTP_HOST'] == 'XX.XX.XX.01' {
 case 1:
  include_once('config_svr01.php');
  ini_set('display_errors', 0);
  error_reporting(0);
 case 0:
  $SVR_ERR = "erreur de connexion au serveur";
}

switch ($_SERVER['HTTP_HOST'] == 'XX.XX.XX.02' {
 case 1:
  include_once('config_svr02.php');
  ini_set('display_errors', 0);
  error_reporting(0);
 case 0:
  $SVR_ERR = "erreur de connexion au serveur";
}

?>

Ce fichier sélectionne le fichier de paramètre selon le mode développement en local ou utilisation en production

Le niveau de reporting des erreurs est également configuré dans ce fichier. Sur un serveur publique, les erreurs sont masquées et sur un serveur de développement en local, les erreurs sont affichées.

Les erreurs du serveur de base de données sont transférées en erreur php et affichées avec le niveau d'affichage d'erreur de php.

(1) utilisation d'une déclaration switch pour forcer une seule évaluation des conditions. La condition IF évalue chaque condition et php peut générer une erreur de type warning car la première condition créee les variables de connexion. Du fait de cette évaluation, une erreur peut être générée car une variable définie avec DEFINE ne peut pas être déclarée une nouvelle fois.

Exemple de fichier de connexion php en pdo à une base de données mysql / mariadb


   <?php
  
  include_once('fichier_de_connexion.php');// 1
  
  $dsn = "mysql:host=" . SVR_IP . ";dbname=" . BDD . ";charset=". CHRSET; // 2
  
  try { // 3
    $conn = new PDO($dsn, UTILISATEUR, MOTDEPASSE); // 4
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 5
    echo "Paramètres de connection à la base de données valides"; 
    $conn = null;  // 6
  } catch (Exception $e) {
    error_log($e->getMessage()); // 7
    echo "<p>Erreur de connection paramètres base de données </p>";
    // echo "<p>Affichage erreur: </p>" . $e->getMessage();
  }
  
  ?>

1 Sélection du fichier de configuration pour les variables du connecteur dsn

2 $dsn: définition de la variable requise de connection pdo sous la forme clé;valeur.

SVR_IP: serveur hôte ou local (localhost) de la base de données mysql, dans cet exemple mysql:host=

BDD: base de données hébergée sur le serveur hôte

Avec pdo, spécifier la base de données est requis pour la connection.

CHRSET: encodage des caractères pour la connection

3 Bloc try...catch

4 Création d'un objet ou d'une instance pdo avec le mot clé new qui permet d'accéder aux propriétés et méthodes de l'interface pdo avec les propriétés suivantes

$dsn: texte de connection pdo référencé précédemment

UTILISATEUR: utilisateur qui peut accéder à la base de données BDD

MOTDEPASSE: mot de passe de l'utilisateur

5 Paramètres facultatifs d'affichage des erreurs des requêtes PDO::ERRMODE_EXCEPTION

6 Déréférencement de l'objet de connection (termine la connection)

7 Enregistrement des erreurs de connection dans le fichier log de php (il est conseillé de ne pas afficher les messages d'erreur).