Ismail HADJADJ
Clog.ismail11@[Link]
PHP & MySQL
Comparaison avec Microsoft ASP
ASP (Active Server Pages) est une
technologie de Microsoft. Elle permet d’offrir
un environnement pour produire des pages
web dynamiques. Plusieurs langages sont
disponibles pour exploiter l’environnement
ASP : JScript, VBScript, PerlScript.
ASP est un DLL qui réside dans le même
espace que le serveur web de Microsoft, IIS
(Internet Information Server).
2
ASP (suite)
Lorsqu’un fichier est appelé et que celui
possède l’extension « .ASP ». Le DLL ASP
interprète le fichier à la recherche des balises
délimitant le code ASP.
ASP est basé « objet » : Application,
ObjectContext, Request, Response, Server,
Session.
3
Comparaison de code
Exemple simple en ASP
<HTML>
<HEAD></HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
[Link] ("Bonjour !")
%>
</BODY>
</HTML>
4
Comparaison de code
Exemple simple en PHP
<HTML>
<HEAD></HEAD>
<BODY BGCOLOR="#FFFFFF">
<?
echo "Bonjour !";
?>
</BODY>
</HTML>
5
2. MySQL
MySQL
Système de gestion de base de données
relationnelles, MySQL est un SGBDR très
populaire, performant et fiable.
MySQL est développé par MySQL AB (
[Link] sous une license GPL
(GNU General Public License).
Il y a 2 millions d’installations connues dans le
monde.
7
Caractéristiques générales
MySQL s’intègre facilement avec PHP (et
Apache et Linux).
Utilise le langage SQL pour les requêtes
(conforme à la majorité des standards SQL).
Supporte les transactions (version Max).
Version courante MySQL 3.23
8
Modèle client/serveur
Une application SGBD roule sur le serveur.
Le serveur est accessible par un client qui
peut être sur la même machine ou distant.
Un pilote ODBC est disponible.
Dans le cas du web, le client est le module
PHP.
9
Caractéristiques techniques
Écrit en C et C++, « multi-threaded » (multiple
CPUs).
Disponible sous plusieurs plate-formes
(notamment Un*x, Windows).
API pour C, C++, Eiffel, Java, Perl, PHP, Python
et Tcl.
Supporte différents types de données: entier
signé/nonsigné de 1, 2, 3, 4, et 8 octets, FLOAT,
DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE,
TIME, DATETIME, TIMESTAMP, YEAR, SET, et
ENUM.
Multilingues (message).
10
Limite
MySQL Version 3.22 : volume limite
sur une table 4 Gigaoctets.
MySQL Version 3.23 : 8 million
teraoctets (2 ^ 63 octets).
Cependant le système d’exploitation
impose des limites.
IL existe des bases de données
MySQL de 50,000,000
enregistrements.
11
Téléversement et source d’infos
MySQL est disponible chez
[Link]
Binaires serveur: 9.3M ([Link]) 14M (rpm)
Sources : 12Mo (compressé)
Ce site est également une source
d’informations.
12
Installation
Le plus simple sous Linux est d’utiliser les RPM (RedHat
Package Manager).
Généralement
Installation des « packages » serveur et client
(option) Installe le « package » développement.
Pour les autres Un*x, les binaires sont également
disponibles.
Dans le cas de Windows, un fichier « setup » fait le travail.
Il est également possible de compiler les sources.
13
Qui utilise MySQL ?
NASA, Yahoo! Finance, Ericsson, U.S. Census
Bureau, Motorola, Texas Instruments, Silicon
Graphics, [Link], [Link]
14
Produits semblables
Autres SGBD « open source »
PostgreSQL [Link]
Interbase
[Link]
Oracle
Microsoft SQL Server
Sybase
15
Performance
Test fait par Sloppycode.
Méthodologie:
▪ Windows 2000 AS SP2, Pentium III 500 et 600Mhz
MySQL est plus rapide avec PHP.
Access est plus rapide avec Java Servlets
Oracle est plus rapide avec ASP.
SQL Server plus rapide avec Java Servlets.
La combinaison la plus rapide est Java
Servlets et SQL Server.
La plus lente est ASP et SQL Server.
Source: [Link]
16
Performance (suite)
Benchmark de EWEEK
MySQL est presque ex-æquo avec Oracle9i.
En considérant le prix,la simplicité et la
stabilité, MySQL se démarque.
SGBD : DB2 7.2, MS SQL Server 2000,
MySQL-Max 4.0.1, Oracle9i [Link].1 et
Sybase ASE [Link].
Source: [Link]
17
PHP et MySQL
PHP offre une panoplie de fonctions pour
exploiter les BD dont MySQL.
Connexion
Requête
Administration
Etc …
Cependant, PHP doit être compilé avec les
bons paramètres.
18
Architecture Apache-PHP-MySQL
APACHE
PHP
GET /[Link]
SQL
Répertoires
web
MySQL
19
Architecture réseau
Serveur
HTTP
Serveur
MySQL
MYSQL
TCP:3306
HTTP
TCP:80
Client web
Parefeu
20
PHP, séquence de requête
1. Définition de la connexion
2. Connexion
3. Exécution de la requête
4. Extraction des résultats de la requête
5. Fin de la connexion, implicite ou spécifiée
21
Instructions PHP pour MySQL
Définition de la connexion
int mysql_connect ([string hostname [:port] [:/path/to/socket] [,
string username [, string password]]])
Sélection de la base de données
int mysql_select_db (string database_name [, int link_identifier])
Exécution de la requête
int mysql_query (string query [, int link_identifier])
Extraction des résultats
array mysql_fetch_row (int result)
Fin de la connexion
int mysql_close ([int link_identifier])
22
3. Sécurité
PHP et la sécurité
PHP est réputé sécuritaire.
La dernière mise en garde majeure concerne
la fonction « fileupload » qui peut-être sujette
à un « buffer overflow » dans certaines
versions.
PHP étant avant tout un langage, il ne peut
empêcher de développer des applications «à
problèmes ».
24
MySQL et la sécurité
MySQL supporte une structure de sécurité au niveau des
utilisateurs. Une table USER contient les infos concernant les
utilisateurs : nom, mot de passe (qui peut-être chiffré), de
quelle adresse IP celui-ci provient et les fonctions qu’il peut
utiliser.
Il existe également une table pour les hôtes, table HOST, qui
indique quelle BD qu’un hôte peut exploiter.
L’échange du mot de passe entre le client et le serveur lors de
l’authentification est chiffré.
Il peut nécessaire de filtrer les accès au port réservé à MySQL
(port TCP 3306).
La sécurité au niveau des applications (PHP).
25
4. Appropriation de la
technologie
EasyPHP
[Link]
EasyPHP installe et configure automatiquement
un environnement de travail complet permettant
de mettre en oeuvre toute la puissance et la
souplesse qu'offrent le langage dynamique
PHP et son support efficace des bases de
données. EasyPHP regroupe un serveur
Apache, une base de donnée MySQL, le
langage PHP ainsi que des outils facilitant le
développement de vos sites ou de vos
applications.
27
Package EASYPHP
EasyPHP
[Link]
Permet d’installer le serveur web Apache, la
base de données MySQL ainsi que la console
de gestion PHPmyADMIN dans un
environnement Win9x/NT/2000/Me.
Attention: cette installation doit-être
sécurisé !
28
29
30
Pages de gestion
31
Quelques infos complémentaires
Linuq
[Link]
PHP Québec
[Link]
Cette présentation est disponible sur le site
de [Link] au URL
[Link]
[Link]@[Link]
32