Connection à mysql avec mysqli en programmation orientée objet (POO)
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.
Exemple de fichier de connexion php en poo
<?php
include_once('fichier_de_connexion.php');
//1
$conn = new mysqli(SVR_IP, UTILISATEUR, MOTDEPASSE); //
2
if ($conn -> connect_errno) { //
3 echo "<p>Erreur de connection paramètres base de données:
(" . $conn -> connect_error. ")</p>";
}else {
echo "<p>Paramètres de connection à la base de données valides</p>";
}
$conn -> close(); //
4
?>
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
mysqli
avec le mot clé new
qui permet d'accéder aux propriétés et méthodes de la classe mysqli
connect_error
de l'objet $conn $conn -> connect_error
close()
Ci-dessous, une autre version parmi les scripts de connexion mysqli en poo possible,
Exemple de connexion php en poo à une base de données mysql / mariadb (version 2)
<?php
include_once('fichier_de_connexion.php');
//1
try {
$conn = new mysqli(SVR_IP, UTILISATEUR, MOTDEPASSE); //
2 $conn->set_charset("utf8mb4");
//3 echo "<p>Paramètres de connection à la base de données valides</p>";
}
catch(Exception $e) {
error_log($e->getMessage());//
4 exit('Error connecting to database ::: ' . $e->getMessage());
}
$conn -> close(); //
5
?>
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
close()
Les différents scripts de connexion peuvent être développés pour être plus complet ou rester simples dans un mode de développement modulaire.
La configuration au niveau de la sécurité de la connexion s'effectue principalement au niveau du serveur et de la base de données. Sur un accès publique, il est nécessaire d'utiliser un mot de passe avec un certain degré de complexité.
Pour les hébergements sur des serveurs mutualisés, il peut y avoir des éléments de sécurité supplémentaires du fait que la base de données se trouve sur un serveur avec des utilisateurs qui peuvent volontairement ou involontairement accéder aux données ou ouvrir des accès sur le web public.
Pour les utilisateurs d'un site web avec une base de données, mysqli permet de sécuriser l'utilisation. Les requêtes préparées dans l'accès aux données offrent une sécurité supplémentaire.