Académique Documents
Professionnel Documents
Culture Documents
Li345
Le langage PHP – 4ème partie
1
Rappel d’architecture
3
Les principales fonctions
MySQL/PHP
mysql_pconnect (serveur, nom, passe)
tente connexion. Si OK, renvoie identifiant non nul cnx
mysql_select_db(base, cnx)
Sélectionne une des bases du serveur, renvoie vrai si OK
mysql_query (requete, cnx)
exécute une requête et renvoie un identifiant résultat
mysql_fetch_object (resultat)
renvoie la ligne suivante sous forme de tableau
4
mysql_pconnect(serveur, nom, passe)
5
mysql_select_db(base, cnx)
7
Fonction de connexion
function Connexion($nom,$pass,$base,$serveur)
{
// Connexion au serveur
$cnx= mysql_pconnect ($serveur,$nom,$passe);
if ($cnx == 0) {
echo "Connexion à $serveur impossible\n";
exit;}
// Connexion à la base
if (mysql_select_db ($base, $cnx) == 0) {
echo "Accès à $base impossible\n";
echo mysql_error($cnx);
exit;}
return $cnx;}
8
mysql_query(requete,cnx)
Exécuter une commande SQL.
Paramètres : texte requête SQL, identifiant de
connexion.
Le serveur exécute la requête, et renvoie un
identifiant de résultat, 0 si échec
Note:
la fonction mysql_error permet de récupérer le
texte du message d’erreur au besoin.
requête peut être select, insert, update,
delete
9
mysql_fetch_object(idresultat)
Renvoie une ligne d’un résultat d’une
interrogation SQL (« curseur »)
Paramètre : identifiant de résultat (obtenu par
mysql_query )
Le premier appel à mysql_fetch_object:
renvoie la première ligne du résultat sous
forme d’un tableau associatif (clé=nom
attribut)
Chaque nouvel appel renvoie la ligne suivante.
Si la fonction renvoie 0, c’est terminé.
En principe, on boucle jusqu’à ce que mysql_fetch_object renvoie 0.
10
Exemple fixe
$resultat =
mysql_query("select * from FilmSimple", $cnx);
if ($resultat != 0) {
while($film =
mysql_fetch_object ($resultat))
{
echo "$film->titre, "
. "paru en $film->annee, "
. "réalisé par $film->nomMES.<BR>";
}
} else
echo "Erreur rencontrée:". mysql_error($cnx);
11
Exemple paramétré : formulaire
<FORM ACTION="ExMyPHP2.php" METHOD=POST>
Donnez les paramètres pour la recherche de films :
<P>
Titre : <INPUT TYPE=TEXT SIZE=20 NAME=’titre’
VALUE=’%’><BR>
<P>
Année début :
<INPUT TYPE=TEXT SIZE=4 NAME=’anMin’ VALUE=1900>
Année fin :
<INPUT TYPE=TEXT SIZE=4 NAME=’anMax’ VALUE=2100>
<P>
<INPUT TYPE=SUBMIT VALUE=’Rechercher’>
</FORM>
12
Exemple paramétré : script (1/2)
require ("Connect.php"); /*constantes de connexion
require ("Connexion.php"); /*fonction connexion
// On récupère les paramètres
$titre=$_REQUEST[’titre’];
$anMin=$_REQUEST[’anMin’];
$anMax=$_REQUEST[’anMax’]; ExMyPHP2.php
echo "Titre = $titre "
. " Année début = $anMin "
. "Année fin=$anMax<HR>";
// On crée la requête
$requete = "SELECT * FROM FilmSimple "
. "WHERE titre LIKE ’$titre’ "
. "AND annee BETWEEN $anMin and
$anMax";
13
Exemple paramétré : script (2/2)
// On se connecte
$cnx =Connexion(NOM, PASSE, BASE, SERVEUR);
// On exécute la requête
$resu = mysql_query($requete, $cnx);
while ($film = mysql_fetch_object($resu))
{
echo "$film->titre, paru en $film->annee, "
. " réalisé par $film->prenomMES "
. " $film->nomMES.<BR>\n";
}
14