Connection à mysql avec mysqli en procedural (POP)
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 connexion php mysqli à une base de données mysql ou mariadb en procédural
<?php
include_once(‘fichier_de_connexion.php’);// 1
$conn = mysqli_connect(SVR_IP, UTILISATEUR, MOTDEPASSE); // 2
if(mysqli_connect_errno()) { // 3
exit(« <p>Echec de la connexion: ( » . mysqli_connect_errno() . « )</p> »);
}else {
echo « <p>Paramètres de connection à la base de données valides</p> »;
}
mysqli_close($conn); // 4
?>
1 sélection du fichier de configuration qui contient les paramètres d’accès
SVR_IP: serveur hôte ou local (localhost)
UTILISATEUR: utilisateur qui peut accéder à la base de données BDD
MOTDEPASSE: mot de passe de l’utilisateur
Spécifier la base de données n’est pas nécessaire avec mysqli
2 Connexion à la base de données avec la fonction « mysqli_connect() »
3 Test de retour d’erreur avec la fonction « mysqli_connect_errno() »
4 Fermeture de la connexion avec la fonction « mysqli_close() »