6.Le langage PHP
6.14.Utilisation de bases de données
6.14.3.Utilisation de MySQL avec PHP
6.14.3.1.Introduction
Nous avons choisi de traiter plus particulièrement MySQL car c'est cette base de données que l'on retrouve chez la plupart des hébergeurs. Et suffit à répondre aux besoins de la plupart des sites web.
L'accès à une base de données se réalise en 3 étapes:
|
6.14.3.2.La connexion
Avant de faire le moindre accès à une base de données, il faut impérativement établir une connexion et choisir sa base de données (en effet un serveur de bases de données peut donner accès à plusieurs bases même si les hébergeurs gratuits - ou presque - n'en proposent généralement qu'une seule).
Cela se fait de la manière suivante:
mysql_connect() retourne un identifiant de connexion ou FALSE en cas d'échec.
Cela se fait de la manière suivante:
<?php $serveurBD = "localhost"; $nomUtilisateur = "toto"; $motDePasse = "secret"; $baseDeDonnees = "mabase"; mysql_connect($serveurBD, $nomUtilisateur, $motDePasse); $connexionReussie = mysql_select_db($baseDeDonnees); // Et pour mettre fin à la connexion mysql_close(); ?> |
|
Voici un exemple concret en local:
mysql_select_db() renvoie un booléen utile pour savoir si la connexion a été réussie.
|
<?php
$serveurBD = "localhost"; $nomUtilisateur = "root"; $motDePasse = ""; $baseDeDonnees = "mabase"; $idConnexion = mysql_connect($serveurBD, $nomUtilisateur, $motDePasse); if ($idConnexion !== FALSE) echo "Connexion au serveur réussie"; else echo "Echec de connexion au serveur"; $connexionBase = mysql_select_db($baseDeDonnees); if ($connexionBase) echo "Connexion à la base réussie"; else echo "Echec de connexion à la base"; // Et pour mettre fin à la connexion mysql_close(); ?> |
Avant de poursuivre plus avant, après avoir créé une base de données, assurez-vous que lorsque vous exécutez le script précédent vous voyez s'afficher les 2 messages de connexions réussies. Sinon, il vous faudra vous assurer que votre serveur de base de données tourne bien, que la base existe et que vous avez indiqué les bons paramètres au niveau du script.
On peut aussi utiliser une autre méthode pour stopper le script si la connexion ne peut pas se faire (inutile d'essayer d'accéder à la base si le serveur n'est pas accessible) :
|
<?php
$serveurBD = "localhost"; $nomUtilisateur = "root"; $motDePasse = ""; $baseDeDonnees = "mabase"; @mysql_connect($serveurBD, $nomUtilisateur, $motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($baseDeDonnees) or die("Cette base de donnees n'existe pas"); // Et pour mettre fin à la connexion mysql_close(); ?> |
6.14.3.3.La deconnexion
Comme vous avez pu le voir dans les exemples précédents, la déconnexion se fait par appel à la fonction mysql_close().
Il est indispensable, de faire appel à cette fonction avant la fin de l'execution du script PHP. Sinon, les ressources ne sont pas libérées et cela peut conduire à ce que la base de données devienne (pour un temps) inaccessible (le nombre de connexions pouvant être simultanément ouvertes étant généralement limité).
6.14.3.4.Requête SQL ne retournant pas de résultat (ex: CREATE TABLE, INSERT, UPDATE, etc.)
Pour exécuter une requête SQL nous pouvons faire appel à la fonction mysql_query().
Avec ce script, nous créons une table exemple1 puis nous y inserons un nom.
|
<?php
$serveurBD = "localhost"; $nomUtilisateur = "root"; $motDePasse = ""; $baseDeDonnees = "mabase"; @mysql_connect($serveurBD, $nomUtilisateur, $motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($baseDeDonnees) or die("Cette base de donnees n'existe pas"); $sql = "CREATE TABLE IF NOT EXISTS exemple1 ". "(id INTEGER PRIMARY KEY AUTO_INCREMENT,". "nom VARCHAR(128))"; $retour = mysql_query($sql); if ($retour === FALSE) { echo "La requête CREATE TABLE a échoué."; } else { echo "La table exemple1 a été créé."; } $sql = "INSERT INTO exemple1 (nom) VALUES ('Exemple phpfacile')"; $retour = mysql_query($sql); if ($retour === FALSE) { echo "La requête INSERT a échoué."; } else { echo "Un nouveau nom a été ajouté dans la table exemple1."; } // Et pour mettre fin à la connexion mysql_close(); ?> |
![]() |
|
6.14.3.5.Requête SQL retournant des résultats (ex: SELECT)
Pour une requête de type SELECT, nous ferons également appel à la fonction mysql_query() mais le traitement sera légèrement différent.
Avec ce script, nous listons les noms stockés dans la table exemple1 créée précédemment.
|
<?php
$serveurBD = "localhost"; $nomUtilisateur = "root"; $motDePasse = ""; $baseDeDonnees = "mabase"; @mysql_connect($serveurBD, $nomUtilisateur, $motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($baseDeDonnees) or die("Cette base de donnees n'existe pas"); $sql = "SELECT * FROM exemple1"; $retour = mysql_query($sql); if ($retour === FALSE) { echo "La requête SELECT a échoué."; } else { while ($enreg = mysql_fetch_array($retour)) { echo $enreg["id"]."-".$enreg["nom"]."<br />\n"; } } // Et pour mettre fin à la connexion mysql_close(); ?> |



bd_02.php

