... Par le 03/05/2019 à 02:04:42

Comment se connecter à une base de donnée en PHP

Lors de la réalisation d’un site dynamique en PHP, il arrive l’étape de l’enregistrement des informations provenant des utilisateurs afin de les réutiliser ultérieurement et rien de plus normal d’utiliser une base de donnée.


En PHP, il existe plusieurs manières de se connecter à une base de données. Dans cet article nous allons éplucher les différentes techniques tout en donnant les avantages et les inconvénients.
Dans cet article nous allons utiliser une base mysql qui est la plus repandue et disponible chez beaucoup d’hebergeur. Je rappel que PHP supporte plusieurs systèmes de gestion de base de données. (sqlite,postgresql …)

Pour la connexion, il existe plusieurs drivers et extensions qu’on pourrait utiliser
1- Mysql
Cette extension est obsolète depuis PHP 5.5.0 et a été supprimée depuis PHP 7.0.0 et ne devrait plus être utiliser. L’extension mysql fournit une interface procédurale, et est destinée à une utilisation avec les serveurs MySQL versions 4.1.3 et plus anciennes.
2- Mysqli
L’extension mysqli, ou, comme elle est parfois appelée, l’extension MySQL améliorée (i pour improved en anglais), a été développée pour tirer parti des nouvelles fonctionnalités des systèmes MySQL version 4.1.3 et plus récent. L’extension mysqli est inclue dans PHP depuis les versions 5.
L’extension mysqli a un grand nombre d’avantages et d’améliorations par rapport à l’extension mysql :

  • Interface orientée objet
  • Support des commandes préparées
  • Support des commandes multiples
  • Support des transactions
  • Capacités de débogage avancées
  • Support du serveur embarqué

3- PDO
L’extension PHP Data Objects (PDO) définit une excellente interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l’interface PDO peut utiliser des fonctionnalités spécifiques de chacune des bases de données en utilisant des extensions de fonctions. Notez que vous ne pouvez exécuter aucune fonction de base de données en utilisant l’extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données.
Dans la suite de cet article, nous allons voir comment utiliser PDO, faire le tour du propriétaire et voir comment elle fonctionne.


Créer une base de donnée
On peut créer une base de donnée de plusieurs manières, en passer par un logiciel, une interface web comme phpmyadmin ou plus simple la ligne de commande.
Paramétrer la connexion
Pour établir la connexion, il faudra instancier l’objet PDO et lui passer plusieurs paramètres.
Le type de base de donnée avec lequel vous allez travailler, ici mysql
L’adresse du serveur, ici localhost ou 127.0.0.1
Le nom de la base de donnée à utiliser
Le port par defaut 3306
Le nom d’utilisateur
Et le mot de passe
Et aussi l’encodage utf8
La connexion au serveur mysql

Exemple de connexion


$bdd = new PDO('dbhost:localhost,dbname=test','root','root')

Notre variable $bdd contient une instance de l’objet avec lequel nous pouvons interagir avec la base de donnée

$req = $bdd->query('SELECT * FROM table);
$resultats = $req->fetch() // ou fetchAll() si il y plusieurs lignes


Utiliser la méthode query et faire un fecth ou fetchall selon le nombre de résultats qu’on veut récupérer.

Les méthodes préparés
Il ne faut jamais faire confiance aux entrees de l’utilisateur pour eviter que les users injecte des scripts malicieux dans notre base de donnee et tenter de recuperer des informations sensibles nous allons utiliser les requetes prepares pour echapper ces donnees et eviter de nous faire hacker.

Nous alonns inserer des donnes en utilisant cette fois ci les requetes prepares

$req = $bdd->prepare('SELECT * FROM table WHERE id = ?');
$req->execute([25]);
$resultats = $req->fetch() // ou fetchAll() si il y plusieurs lignes

Affichage des erreurs
Par défaut pdo est en mode silencieux c’est à dire qu’il n’affiche pas les erreurs
Nous allons remédier a cela en affichant les erreurs lors de la phase de développement ne pas oublier de le retirer lorsque le site passera en production et j’insiste la dessus.

$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

Pour plus d’informations sur referez vous à la documentation de php

Merci pour votre attention et à très bientôt sur parlons-informatique


Poster un Commentaire

avatar