Vous êtes sur la page 1sur 11

PHP et bases de données

10:33:28 Programmation Web 2013-2014 1


Utilisation de MySQL (ou autre) avec PHP

Client
Réseau Navigateur
•HTML
•JavaScript
•CSS

Serveur Autre serveur


PostgreSQL
Serveur Web
.html
.php

Module PHP Oracle …


MySQL
MySQL

10:33:28 Programmation Web 2013-2014 2


Serveur MySQL - Principe

 Pour qu’un utilisateur puisse effectuer des


requêtes il doit :
1. S’identifier sur le serveur MySQL
2. Choisir la base de données de travail
3. Effectuer la requête
4. Récupérer et parcourir le résultat de la requête

 Il existe des fonctions PHP permettant


d’effectuer toutes ces opérations

10:33:28 Programmation Web 2013-2014 3


Fonctions MySQL en PHP

 S’identifier sur le serveur MySQL


mysql_connect(server, [username], [password])
Retourne un identifiant de connexion ou false

 Choisir la base de données de travail


mysql_select_db(database_name, [link_identifier])
Retourne true ou false
Utilise par défaut la dernière base de données active

 Effectuer la requête
mysql_query(query, [link_identifier])
Retourne le résultat ou false
Utilise par défaut la dernière base de données active

10:33:28 Programmation Web 2013-2014 4


<html><body> echo $a.$b.$c.$d;
<form action="#" method="get">> $hote="localhost";
<tr> $user="root";
<td> n<input type="text" name='num' > </td>
$pass="";
<td> nom<input type="text" name='nom' >
</td> $co=mysql_connect($hote,$user,$pass);
<td> prenom<input type="text" $bdd="test1";
name='prenom' > </td> mysql_select_db($bdd,$co);
<td> tel<input type="text" name='tel' > </td> $req="INSERT INTO
</tr> personne(num,nom,prenom,tel)values($a,'
<input type="submit" value="Envoyer"> $b','$c','$d')";
</form> mysql_query($req,$co);
<?php
?></body></html>
echo $_GET[num];
echo $_GET['nom'];
echo $_GET['prenom'];
echo $_GET['tel'];
$a=$_GET['num'];
$b=$_GET['nom'];
$c=$_GET['prenom'];
$d=$_GET['tel'];

10:33:28 Programmation Web 2013-2014 5


Fonctions MySQL en PHP

 Parcourir le résultat de la requête


SELECT * Résultat de requête
FROM morceau
ORDER BY mor_id Curseur interne

+--------+------------------------------------+
| mor_id | mor_nom |
+--------+------------------------------------+
| 872 | With A Little Help From My Friends |
| 873 | The Letter |
| 874 | Marjorine |
| 875 | Midnight Rider |
| 876 | You Are So Beautiful |
| 877 | Feelin' Allright |
| 878 | Cry Me A River |
...

10:33:28 Programmation Web 2013-2014 6


Fonctions MySQL en PHP

 Parcourir le résultat de la requête


mysql_fetch_method(result_identifier)
Retourne une ligne de résultat ou false
Le format de la ligne retournée est fonction de method :
 mysql_fetch_row(result_identifier)
MYSQL_ASSOC : Tableau associatif
ligne de résultat sous forme
MYSQL_NUM
de tableau
: Tableau indexé
 mysql_fetch_assoc(result_identifier)
MYSQL_BOTH : Tableau indexé
ET associatif
ligne de résultat sous forme de tableau associatif
 mysql_fetch_array(result_identifier, [type] )
ligne de résultat sous forme de tableau
 mysql_fetch_object(result_identifier)
ligne de résultat sous forme d'objet
10:33:28 Programmation Web 2013-2014 7
Fonctions MySQL

 Dernière erreur
mysql_error([link_identifier])
Retourne l'erreur MySQL
Utilise par défaut la dernière base de données active

 Fermeture de connexion
mysql_close([link_identifier])
Ferme la connexion MySQL
Utilise par défaut la dernière base de données active

10:33:28 Programmation Web 2013-2014 8


Fonctionnalités indispensable à définir

 La connexion est habituellement la même dans tous les


scripts PHP d’une même application
 Il convient de n’exécuter qu’une seule par script :
mysql_connect(server, username, password);
mysql_select_db(database_name);
 Il convient de gérer les erreurs de connexion
 Il convient de gérer les erreurs des requêtes SQL

10:33:28 Programmation Web 2013-2014 9


<HTML>
<HEAD>
<TITLE>EXERCICE 11 : Affichage d'une requête sous forme simple HTML</TITLE>
</HEAD>
<BODY>
<?PHP
$host = "localhost";
$user = "root";
$password = "";
//crée une connexion au serveur mysql
mysql_connect ($host, $user, $password); // connection au serveur
mysql_select_db("appli_commandes"); //ouvre la BDD
// paramétrage de la requête
$req_client = "select code_client, nom, site from clients";
// envoie le résultat de la requête dans le recordset
$r_result = mysql_query($req_client);
?>
Resultats de la requête : <B> <? echo ($req_client); ?> </B>
<BR><BR>
10:33:28 Programmation Web 2013-2014 10
<? // balaye toutes les lignes du recordset et les affiche
for ($i = 0 ; $i < mysql_num_rows($r_result); $i++)
{
//extrait le résultat de la prochaine ligne du recordset dans une variable
de type tableau
$tbl_ligne = mysql_fetch_array ($r_result);
// affiche chaque champ de la ligne
echo ($tbl_ligne['code_client'] . " " . $tbl_ligne['nom']);?>
<A href= " <?echo ($tbl_ligne['site']);?> "> Accès au site <?echo
($tbl_ligne['site']);?> </A>
<?echo "<BR>";
}
//libère la mémoire affectée au recordset
mysql_free_result($r_result);
?>
</BODY>
</HTML>

10:33:28 Programmation Web 2013-2014 11