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).