info2gestion

Accueil

PHP

MySqli connexion à mysql en programmation orientée objet (POO)

Connection à mysql avec mysqli en programmation orientée objet (POO)

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


<?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 config_conn.php


<?php
if ($_SERVER['HTTP_HOST'] == 'localhost') {
  include_once('config_local.php');
  ini_set('display_errors', 1);
  error_reporting(E_ALL);;
} else {
  include_once('config_svr01.php');
  ini_set('display_errors', 0);
  error_reporting(0);
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
?>

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('config_glob.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

?>

1 Sélection du fichier de configuration

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

2 Création d'un objet ou d'une instance mysqli avec le mot clé new qui permet d'accéder aux propriétés et méthodes de la classe mysqli

3 Test de retour d'erreur avec la méthode connect_error de l'objet $conn $conn -> connect_error

4 Fermeture de la connexion avec la méthode de l'objet $conn close()


Ci-dessous, une autre version parmi les scripts de connexion mysqli en poo possible,

Exemple de fichier de connexion php en poo version 2


 <?php

include_once('config_conn.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

?>

1 sélection du fichier de configuration

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 un objet mysqli instancié

3 Encodage des caractères, il faut s'assurer que cet encodage est compatible avec celui de la table dans la base de données

4 Copie des erreurs de connection dans les fichiers de log du serveur

5 Fermeture de la connexion avec la méthode de l'objet $conn 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.