Le langage PHP (2)
Transcript of Le langage PHP (2)
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Le langage PHP (2)
Walid BelkhirUniversite de Provence
[email protected]://www.lif.univ-mrs.fr/∼belkhir/
1 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL2 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Plan
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL
3 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les objets
Definition d’une classeclass Personne {//Attributsvar $nom ;var $prenom, $age ;
//Constructeurfunction Personne ($n, $p, $a) {$this->nom = $n ;$this->prenom = $p ;$this->age = $a ;} }
// La construction d’un objet (ou instanciation)$p = new Personne(”Toto”, ”Jean”, 36) ;// Quel est son age ?echo ”L’age de $p->prenom $p->nom est $p->age ans” ;
4 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les objets
Declaration de methodes :class Personne {// definition des attributsvar $nom, $prenom, $age,// definition du constructeur portant le nom de la classefunction Personne ($n, $p, $a) {$this->nom = $n ;$this->prenom = $p ;$this->age = $a ;}// definition de methodesfunction presenteToi() {echo ”Bonjour, je m’appelle \n” ;echo $this->prenom . ” ” . $this->nom .”\n” ;echo ”j’ai actuellement ” . $this->age . ” ans\n” ;} }
5 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les objets
Creation d’objet :$toto = new Personne(”TOTO”,”Titi”, 99) ;Acces aux attributs et aux methodes :echo $toto->age ;$toto->presenteToi() ;
6 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Heritage (1/2)
Declaration de la classe heritee Employe< ? // fichier Employe.phprequire(”Personne.php”) ;class Employe extends Personne {// attributs supplementaires// $competences doit etre un tableauvar $service ;var $competences ;function Employe($ser, $c, $n, $p, $a) {$this->service = $ser ;$this->competences = $c ;$this->Personne($n, $p, $a) ;}function ajout competence($comp) {if ( ! empty($comp) )$this->competences[] = $comp ;
}7 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Heritage (2/2)
function presenteToi() {// appel de la methode de la super-classeparent : :presenteToi() ;echo ”Je travaille dans le service $this->service <BR>” ;if (sizeof($this->competences)>0) {echo ”Voici la liste de mes competences : <ul>” ;foreach ($this->competences as $competence)
echo ”<li>$competence</li>” ;echo ”</ul> <p>” ;} }} // fin classe Employe ?>
8 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les objets
Particularites de PHP
Les attributs et les methodes sont publics
Il n’y a pas de destructeurs : les objets sont liberesautomatiquement quand ils ne sont plus utilises. ( ?)
La duree de vie d’un objet n’excede pas la duree d’executiondu script qui le cree.
9 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Linearisation
serialize() : fonction qui transforme les objets en une chaınede caracteres
< ?php$toto = new Personne(”TOTO”,”titi”,99) ;$toto Lineaire = serialize($toto) ;$toto de Depart = unserialize($toto Lineaire) ;$toto de Depart->decritToi() ;?>
10 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les fonctions magiques
Supposant que les objets ont ouvert une connexion a une basede donnees et ne l’ont pas encore fermee
=⇒ il est preferable de s’assurer que certaines operationssoit effectuees avant que l’objet ne soit linearise
C’est le role de la fonction magique sleep(). Cette fonction,si elle existe dans l’objet sera automatiquement appelee par lafonction serialize() et permettra de fermer toute vosconnexions
La fonction sleep() retourne obligatoirement un tableaucontenant la liste des attributs a lineariser.
La fonction magique wakeup() est, si elle existe,automatiquement appelee par la fonction unserialize(). Ellepourra alors reconnecter l’objet a la base de donnees oureinitialiser certains attributs.
11 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les fonction magiques : un exemple
< ?phpclass Personne {
...function sleep() {
$this->age = 0 ;return array(’age’) ;
}
function wakeup() {$this->age = 100 ;
}}?>
12 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Plan
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL
13 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Timeout
par defaut, au bout de 30 secondes d’execution (directivemax execution time), le script passe a l’etat TIMEOUT
set time out(sec) : modifier la valeur de timeout
connection timeout : retourne TRUE si le timeout est arrive aecheance
la fonction de terminaison pre-enregistree avecregister shutdown function(func) est appele quand le timeoutexpire
14 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les sessions
Une session PHP permet de stocker des informations del’utilisateur sur le serveur (son panier, ses identifiants deconnection. . . )
Ceci offre un haut niveau de securite ( a l’inverse des cookiesqui stockent les informations directement sur la machine duclient)
Une session est temporaire et est efface tres rapidement duserveur. (Le temps moyen est de 30 minutes par defaut)
15 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Gestion des session
PHP permet de sauver des informations entre deux requetesHTTP (valeur de variables)
avec PHP3, il faut une bibliotheque complementaireinclus dans PHP4
Principes (avec PHP4)
chaque nouvel utilisateur se voit attribuer un identificateur desession (SID)par defaut, ce numero est transmis a l’aide d’un cookie ; sinon(si l’utilisateur n’accepte pas les cookies) PHP propagedirectement le SID via l’URLquand un utilisateur accede a la page, PHP4, verifie si unidentificateur de session est present dans la requete HTTP
16 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Les sessions
Le demarrage d’une session se fait dans les cas suivants :
session.auto start=on dans php.inilors de l’appel de session start() ou de session register()dans le cas ou le numero de session est valide, toutl’environnement de celle-ci est restaure dans $ SESSION
session destroy pour detruire une session,session unregister() pour de-enregistrer une variable
Par des defaut, les variables de session sont stockees dans unfichier du serveur
Le code de demarrage de session doit etre inclus dans la pageavant tout code HTML
17 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Gestion de sessions : un exemple
< ?php // dans une fichier F1.phpsession start() ;session register(’user’) ; // $user sera sauvegarde$user = ”toto” ; ?>
< ?php // dans un fichier F2.phpsession start() ;echo ”Vous etes {$ SESSION[’user’]}” ;//va afficher ”Vous etes toto”?>
18 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Gestion des cookies
setcookie() permet de mettre en place un cookie (envoie versle client)
La fonction setcookie doit etre place avant tout code HTML
syntaxe : setcookie(”name”,”value”,expire,”path”,”domain”,secure)
expire : est un time stamp UNIXsecure : vaut 0 ou 1
print($ COOKIE) : affiche tous les cookies en provenance duclient
19 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Gestion des cookies
Mise en place d’un cookies :< ?php // le cookie expire dans 3 heuressetcookie(”nb visite”,”1”,mktime()+3600*3,/∼/MesPages”,”cmi.univ-mrs.fr”) ; ?><HTML> ....</HTML>
Effacement d’un cookiesetcookie(”nb visite”,mktime()-1) ;
Lecture / modification d’un cookiesetcookie(”nb visite”,”100”,mktime()+3600*3,/∼/MesPages”,”cmi.univ-mrs.fr”) ;
20 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Plan
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL
21 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
manipulation de fichiers/repertoire
fopen() : ouverture d’un fichier (il est possible de fournir uneURL pour les ficheirs distants)
fclose() : fermeture d’un fichier
fread()/fgets()/fwrite()/fputs() : lecture/ecriture dans unfichier
fgetss() : lire une ligne dans un fichier en supprimant lesbalises HTML
rewind()/ fseek()/ ftell() : positionnement dans le fichier
fpassthru() : lit la totalite du fichier et l’affiche sur la sortiestandard
file exists : teste si le fichier existe
copy()/rename() /unlink() : copie/ renomme / efface unfichier.
22 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Manipulation de fichiers : exemples
Affichage d’une image :< ?phpif( ! $fd = fopen(”Mes images/image1.gif”) )
echo ”Probleme d’ouverture” ;else fpassthru($fd) ;fclose($fd) ; ?>
Copie d’un fichier< ?php$fichier=”image.gif” ;if (file exists($fichier))
copy($fichier,”/Library/”.$fichier) ;else echo ”Le fichier $fichier” n’existe pas” ;?>
23 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Manipulation de repertoires
chdir() : changement de repertoire courant
opendir()/closedir() / mkdir() / rmdir() : ouverture,fermeture, creation, suppression de repertoire
rewind() : repositionnement au debut de repertoire
dir() : instanciation d’un objet repertoire
Exemple : lister le contenu d’un repertoire (commande ls)< ?$rep=dir(”/home/dupond”) ;$rep->rewinddir() ;while($f = $rep->readdir())
echo ”$f \n” ;$rep->closedir() ?>
24 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Telechargement d’un fichier
Il est possible de recevoir des fichiers en provenance du client etd’y associer un traitement
reception par la methode POST : une boite de dialoguepermet a l’utilisateur de selectionner un fichier local<FORM ENCTYPE=”mulipart/form-data” ACTION=”...”METHOD=”POST”><INPUT TYPE=”hidden” NAME=”MAX FILE SIZE”VALUE=”999” >Envoie ce fichier :<INPUT NAME=”userfile” TYPE=”file”>
< TYPE=”submit” VALUE=”Envoyer le fichier” > </FORM>
25 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Telechargement de fichier
le fichier telecharge sera stocke temporairement dans unrepertoire ($TMPDIR) sur le serveur
is uploaded file() : verifier si le fichier a ete bien telecharge
26 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Telechargement de fichiers
Information recus par PHP dans $ FILES
le champ cache MAX FILE SIZE permet a PHP de faire desverifications sur la taille du fichier telecharge
$ FILE[’userfile’][’name’] : nom original du fichier sur lamachine client
$ FILE[’userfile’][type’] : type MIME du fichier
$ FILE[’userfile’][’size’] : taille du fichier en octets
$ FILE[’userfile’][’tmp name’] : nom temporaire du fichier quisera charge sur la machine serveur
$ FILE[’userfile’][’error’] : 0 en cas de reussite dutelechargement
27 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Plan
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL
28 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission des donnees
<form method=”post” action=”cible.php”>On inserera ici les elements de notre formulaire....
</form>
Attribut method : 2 manieres (2 methodes) pour envoyer unformulaire :
1 get : les donnees transiteront par l’URL (on les voie dans labarre d’adresse)on pourra les recuperer grace au tableau $ GET
2 post : donnees ne transiteront pas par l’URLon pourra les recuperer grace au tableau $ POST
Attribut action : designe la page (ex. ”cible.php”) qui recevrales donnees du formulaire et qui sera chargee de les traiter.
29 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission de donnees : petite zone de texte
// fichier : formulaire.php<p>
Cette page ne contient que du HTML.<br />Veuillez taper votre prenom :
</p><form action=”cible.php” method=”post”><p>
<input type=”text” name=”prenom” /><input type=”submit” value=”Valider” />
</p></form>
———————————————// fichier : cible.phpTu t’appelles < ?php echo $ POST[’prenom’] ; ?> !<br>Si tu veux changer de prenom,
<a href=”formulaire.php”>clique ici</a> pour revenir a formulaire.php
30 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission de donnees : grande zone de texte
Code HTML :<textarea name=”message” rows=”8” cols=”45”>Votre message ici.</textarea>
$ POST[’message’] : pour recuperer le contenu de la zone dutexte
31 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission de donnees : liste deroulante
Code HTML :<select name=”choix”><option value=”choix1”>Choix 1</option><option value=”choix2”>Choix 2</option><option value=”choix3”>Choix 3</option><option value=”choix4”>Choix 4</option></select>
=⇒une variable $ POST[’choix’] sera creee,elle contiendra le choix qu’a fait l’utilisateur.S’il a choisi ”Choix 3”, la variable $ POST[’choix’] sera egaleau value correspondant, c’est-a-dire ”choix3”.Liste a choix multiple ? : $ POST[’choix’][$i] ;
32 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission de donnees : case a cocher
Case a cocher : $ POST[’case name’]
Si la case est cochee, alors $ POST[’case’] aura pour valeur”on”
sinon, $ POST[’case name’] n’existe pas ; (on peux faire untest avec isset ($ POST[’case name’]))
33 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Transmission de donnees : boutons d’option
Les boutons d’option
Code HTML :Aimez-vous le Foot ?<input type=”radio” name=”Foot” value=”oui”checked=”checked” > Oui<input type=”radio” name=”Foot” value=”non”> Non
si on a choisit Oui alors $ POST[’Foot’] vaut ”oui”
34 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Plan
1 La programmation orientee objet
2 Gestion de Connexions HTTP
3 Manipulation de fichiers
4 Transmission des donnees
5 PHP/MySQL
35 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
PHP permet d’acceder a de nombreuses SGBD (MySQL,Oracle, ...)
la plupart de ces SGBD sont accessible via le langage SQL(Structured Query Langage) qui permet de realiser desrequetes a la base de donnees
les fonctionnalites de bases de SQL :
connexion au serveur de BD (machine, login, passwd)selection du nom de la base a utiliserrequete SQL vers la baseexploitation du resultat de la requete (affichage, ...)deconnexion
36 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
Exemples de commandes SQL : une table contenant 3 champs(Id, Nom, Prenom)CREATE DATABASE MaBaseCREATE TABLE Personne (Id INT(2) NOT NULL, NOMVARCHAR(25), Prenom VARCHAR(25), PRIMARY KEY(Id))INSERT INTO Personne VALUES (’1’,’Dupond’,’Jack’)INSERT INTO Personne VALUES (’2’,’Durant’,’Paul’)SELECT Nom, Prenom FROM PERSONNE
DELETE FROM Personne WHERE NOM=’Dupont’
PHP n’est qu’un intermediaire entre le client et la base dedonnees
37 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
Configuration de PHP/MySQL : voir php.ini
Les fonctions les plus courantes, utilisees pour acceder a unebase MySQL
mysql connect() : ouvrir une connexion avec le serveur de BDmysql select db() : changer la base active sur la connexion encoursmysql list *() : lister les bases (dbs), les tables (tables), leschamps d’une table (field) disponibles sur le serveur de BDmysql query() : envoyer une requete SQL ; un identifiant estretourne pour pour pouvoir traiter le resultatmysql close() : fermer la connexion avec le serveur
38 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
Traitement du resultat d’une requete SQL :
mysql result() : extraire le contenu d’un champ du resultat
mysql fetch *() : transforme une ligne du resultat du resultaten tableau associatif (dont les cles sont les noms des champsou l’indice de la colonne) en objet (dont les proprietes sont lesnoms des champs)
mysql field *() : obtenir des informations sur les champspresents dans le resultat (type, nom, ...)
mysql free result() : effacer le resultat de la memoire
mysql num fields() et mysql num rows() retournentrespectivement le nombre de champs/lignes du resultat.
39 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
Connexions persistantes au serveur avec mysql pconnect() :
la connexion reste ouverte entre l’execution de 2scripts/requetes differents
la connexion n’est plus fermee automatiquement a la fin duscript PHPaccelere les acces a la base de donnee quand ces derniers sontfrequents
la connexion sera fermee automatiquement apres un certaintemps d’inutilisation
40 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL
Traitement des erreurs : 3 possibilite
1 $conn=mysl connect($host, $user, $passwd) ; :=⇒ si la fonction echoue, le programme continue
2 $conn=mysl connect($host, $user, $passwd) ordie(”Connexion impossible ! !”) ;=⇒ si la fonction echoue, un message est affiche et le
programme se termine ( die(”message”) est un alias de lafontcion exit )
3 if ( ! $conn=mysql connect($host, $user, $passwd)){$msg = mysql error() ; echo(”msg”) ; exit ;}
=⇒ si la fonction echoue, le message d’erreur est affiche etle programme se termine ($mysql error() permet de recupererle diagnostique d’echec correspondant au dernier acces auserveur )
41 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL : exemple (1/2)
< ?php/* ajout personne.php : ajoute la personne ($nom,$prenom) dans la tablePersonne de la base MaBase (deja creees) et affiche la table complete *//* connexion */$host = ”localhost” ; $user=”toto”, $passwd=”titi” ; $base=”MaBase” ;$table=”Personne” ;$conn=mysql connect($host,$user,$passwd) or die(”connexionimpossible”) ;mysql select db($base,$conn) or die (”selection impossible”) ;
/* Recherche de l’Id suivant dans la table, on suppose que Id= numerode la ligne*/$query=”SELECT * FROM $table” ;$result=mysql query($query) or die(”echecs de la requete 1”) ;$next id =mysql num rows($result) + 1 ;mysql free result($result) ;
/* Ajout de ($next id,$nom,$prenom) dans la table */$query=”INSERT INTO $table VALUES(’$next id’,’$nom’,’$prenom’)” ;
mysql query($query) or die (”Echecs de la requete 2”) ; 42 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
PHP et MySQL : exemple (2/2)
/* Affichage complet de la table */$query = ”SELECT Nom,Prenom, FROM $table” ;$result = mysql query($query) or die (”Echec de la requete 3”) ;echo”<table>\n” ;while($ligne= mysql fetch array($result,MYSQL ASSOC)){
echo”<tr>” ;foreach($ligne as $valeur champ){
echo ”<td>$valeur champ</td>” ;}echo ”</tr>” ;
}echo ”</table>” ;
/* Liberation du resultat */mysql free result($result) ;/* Fermeture de la connexion*/mysql close($conn) ;
?>
43 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql ( /)
bool mysql select db ( string $database name , resource$link identifier ) : selectionne une base de donnees MySQLsur le serveur associe avec le parametre $link identifier .Chaque appel a la fonction mysql query sera executee sur labase de donnees active.
$database name le nom de la base de donnees a selectionner.$link identifier : la connexion MySQL.
1 S’il n’est pas specifie, la derniere connexion ouverte avec lafonction mysql connect sera utilisee.
2 Si une telle connexion n’est pas trouvee, la fonction tenterad’ouvrir une connexion, comme si la fonction mysql connectavait ete appelee sans argument.
3 Si aucune connexion n’est trouvee ou etablie, une alerteE WARNING est generee.
Cette fonction retourne TRUE en cas de succes, FALSE encas d’echec.
44 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
int mysql affected rows ([ resource $link identifier ] ) : lenombre des lignes touchees par la derniere requete : INSERT,UDPATE, REPLACE et DELETE asssocie a $link identifier.Ex. mysql query(’DELETE FROM mytable WHERE 0’) ;
printf(”Nombre de lignes suprimes : ”, mysql affected rows()) ;
bool mysql create db ( string $database name [, resource$link identifier ] ) : cree( ?) une nouvelle base de donnee sur leserveur dont l’identifiant est $link identifier.
45 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonction MySql
array mysql fetch array ( resource $result [, int $result type =MYSQL BOTH ] ) : retourne une ligne de resultat MySQLsous la forme d’un tableau associatif, d’un tableau indexe, oules deux
$result La ressource de resultat qui vient d’etre evaluee. Ceresultat vient de l’appel a la fonction mysql query().$result type : Le type de tableau a recuperer. C’est uneconstante qui peut prendre les valeurs suivantes :MYSQL ASSOC , MYSQL NUM , et la valeur par defaut estMYSQL BOTH .
46 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Exemple : mysql fetch array avec MYSQL NUM
< ?phpmysql connect(”localhost”, ”mysql user”, ”mysql password”) or
die(”Impossible de se connecter : ” . mysql error()) ;mysql select db(”mydb”) ;$result = mysql query(”SELECT id, name FROM mytable”) ;while ($row = mysql fetch array($result, MYSQL NUM)) {
printf(”ID : Nom :”, $row[0], $row[1]) ;}mysql free result($result) ;?>
47 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Exemple : mysql fetch array avec MYSQL ASSOC
< ?phpmysql connect(”localhost”, ”mysql user”, ”mysql password”) or
die(”Impossible de se connecter : ” . mysql error()) ;mysql select db(”mydb”) ;$result = mysql query(”SELECT id, name FROM mytable”) ;while ($row = mysql fetch array($result, MYSQL NUM)) {
printf(”ID : Nom :”, $row[”id”], $row[”name”]) ;}mysql free result($result) ;?>
48 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Exemple : mysql fetch array avec MYSQL BOTH
< ?phpmysql connect(”localhost”, ”mysql user”, ”mysql password”) or
die(”Impossible de se connecter : ” . mysql error()) ;mysql select db(”mydb”) ;$result = mysql query(”SELECT id, name FROM mytable”) ;while ($row = mysql fetch array($result, MYSQL NUM)) {
printf(”ID : Nom :”, $row[0], $row[”name”]) ;}mysql free result($result) ;?>
49 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
array mysql fetch assoc ( resource $result ) : equivalent amysql fetch array() avec MYSQL ASSOC comme 2ieme
parametre.
array mysql fetch row ( resource $result ) : retourne untableau indexe numeriquement, qui correspond a la ligne duresultat MySQL $result
int mysql field len ( resource $result , int $field offset ) :retourne la taille d’un champ de resultat MySQL
50 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
object mysql fetch field( resource $result , int $field offset) :retourne les donnees enregistrees dans une colonne MySQLsous forme d’objet
$result : la ressource de resultat qui vient d’etre evaluee. Ceresultat vient de l’appel a la fonction mysql query .field offset : la position numerique du champ.Retourne un objet contenant les informations sur les champs.Les proprietes de l’objet sont :
1 name - nom de la colonne2 table - nom de la table de la colonne3 def - valeur par defaut de la colonne4 max length - taille maximale de la colonne5 not null - 1 si la colonne ne peut pas etre NULL6 primary key - 1 si la colonne est une cle primaire7 unique key - 1 si la colonne est une cle unique8 multiple key - 1 si la colonne est une cle non unique9 numeric - 1 si la colonne est numerique
10 type - le type de la colonne11 unsigned - 1 si la colonne est non signee12 ... 51 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
bool mysql drop db ( string $database name] ) : supprimerune base de donnee
string mysql error ([ resource $link identifier ] ) : retourne lemessage d’erreur (sous forme de texte) de la derniere requete
int mysql field len ( resource $result , int $field offset ) :retourne la longueur du champ specifie ( ?)
string mysql info ([ resource $link identifier ] ) : retourne desinformations detaillees sur la derniere requete
int mysql insert id ([ resource $link identifier ] ) : retournel’ID genere par la derniere requete (i.e. INSERT)
52 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
resource mysql list dbs ([ resource $link identifier ] ) : la listedes bases de donnee presentes sur le serveur MySql
resource mysql list fields ( string $database name,string $table name [, resource $link identifier ] ) :
la liste des champs d’une table
resource mysql list processes ([ resource $link identifier ] ) : laliste des processus ( ?)
resource mysql list tables ( string $database [, resource$link identifier ] ) : la liste des tables de la base de donnee
int mysql num fields ( resource $result ) : le nombre dechamps d’une requete
int mysql num rows ( resource $result ) : le nombre de lignesd’une requete
53 / 54
La programmation orientee objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des donnees PHP/MySQL
Quelques fonctions MySql
bool mysql ping ([ resource $link identifier ] ) : teste si leconnexion avec le serveur est encore etablie, sinonreconnexion.
resource mysql query(string $query [,resource $link identifier ]) : envoie une seule requete
string mysql result(resource $result, int $row [, int $field=0]) :retourne le contenu d’un champ de la requete ( ?)
54 / 54