6.Le langage PHP

6.17.Utilisation de bases de données avec PHP

6.17.1.Introduction

Pour la réalisation de vos scripts PHP, vous serez peut-être amenés à stocker des listes d'utilisateurs, des listes de produits à vendre, des listes de messages, etc. que sais-je encore. Si vous n'êtes pas familier avec les bases de données vous serez sans doute tenté de gérer cela avec des fichiers[comment?] mais bien vite vous vous rendrez compte des contraintes que cela impose. Il n'est pas forcément évident de stocker plusieurs informations (ex: nom, prénom, email, etc) sur une même ligne (il faut choisir le bon délimiteur), il n'est pas forcément évident de retrouver rapidement la bonne ligne dans le fichier (par exemple pour retrouver le mot de passe de la personne qui veut se connecter), il n'est pas forcément évident de supprimer des lignes dans un fichier. Bref, l'utilisation des fichiers entraîne plein de contraintes auxquelles répondent les bases de données[c'est quoi?].
PHP permet d'utiliser de nombreux types de bases de données telles que Oracle, Sybase, PostgreSQL mais aussi bien sur MySQL et SQLite. Toutes utilisent un langage propre aux bases de données: le language SQL[c'est quoi?]
Il existe différentes méthodes pour accéder à chacune des bases de données
  • Soit en utilisant des fonctions spécifiques à la base de données. Ce qui permet d'avoir accès à l'ensemble des spécificités de la base de données mais implique d'écrire des bouts de code différents si vous souhaitez que votre script puisse communiquer avec une autre base que celle que vous avez retenu dans un premier temps. Il existe bien souvent 2 types de fonctions utilisables (correspondant à 2 philosophies d'écriture de code)
    • en mode procédure (i.e. la programmation "classique")
    • en programmation orientée-objet[c'est quoi?]
  • Soit en utilisant ce que l'on appelle une couche d'abstraction permettant d'utiliser le même code PHP quelque soit la base utilisée. Cette méthode offre le mérite de:
    • pouvoir laisser le choix aux personnes chargées du déploiement de l'application de choisir la base de données qu'ils souhaitent utiliser
    • ne pas avoir à apprendre toutes les fonctions propres à chaque base de données (si d'un projet à l'autre vous en changez) mais il faut noter que cela ne permet pas de s'affranchir des difficultées liées à la gestion ou l'utilisation des spécificités des différentes bases de données (notamment les différences en terme de langage SQL, comme par exemple les champs auto-incrémentés).
L'utilisation des fonctions spécifiques à la base de données étant encore très répandue, c'est certainement celle-ci que vous verrez par ailleurs. Nous allons donc commencer par cette méthode de travail pour vous familiariser avec l'accès aux bases de données en PHP. Néanmoins, nous vous invitons à consulter et mettre en pratique l'utilisation des couches d'abstractions que nous présentons en fin de chapitre.
La plupart de ces bases de données nécessite l'installation d'un serveur de base de données. Seul SQLite fait exception car il ne s'appuie que sur un simple fichier. C'est pourquoi nous vous proposons de commencer par cette base de données. Notez toutefois que la simplicité d'utilisation de SQLite se fait au dépend de ses fonctionnalités.
Nous verrons donc par la suite comment utiliser PHP avec MySQL[où?].
Ici vous pouvez apprendre :
Forum PHP
Version imprimable: imprimer