Cours et tutoriaux Photoshop, Flash, Fireworks, Paintshop et sur le développement de sites Web XHTML, PHP, MySQL...

Cours de PHP : Les fonctions MySQL

PHP dispose de nombreuses fonctions pour interagir avec une base de données MySQL.
Ce cours présente les fonctions les plus utiles et les plus souvent employées pour développer des sites Web.

1. MySQL pour stocker des informationsIcone remonter en haut de page

En employant de concert MySQL et PHP vous pouvez créer des scripts capable de stocker toutes sortes d'informations.
C'est ainsi que vous pouvez créer des services tels qu'un espace membre, un forum de discussions, un sondage, etc...


2. Connexion à MySQLIcone remonter en haut de page

Pour pouvoir vous connecter à votre base de données MySQL vous devez tout d'abord réunir quelques informations :
Le server
Dans la majorité des cas ce paramètre est "localhost".
Il est possible de compléter cette valeur en indiquant le numéro de port utilisé, par exemple "localhost:3306".
Une autre donnée acceptable est le chemin vers le socket local, par exemple pour "localhost" : ":/path/to/socket"
Le nom d'utilisateur
La plupart du temps cette valeur est "root".
C'est le cas lorsque vous travaillez en local (par exemple avec EasyPHP).
Si vous employez les services d'un hébergeur Web ce dernier vous fournira ce login ou vous permettra d'accéder à une console d'administration où vous pourrez le créer vous-même
Le mot de passe
Si vous travaillez en local cette valeur est vide.
Dans le cas contraire votre hébergeur vous fournira cette valeur ou vous laissera la possibilité de la définir vous-même

Ces informations étant maintenant définies vous pouvez utiliser la fonction mysql_connect() pour vous connecter à votre base de données MySQL.
Code-source : PHP
mysql_connect("HOST", "LOGIN", "PASSWORD");

Lorsque la connexion avec MySQL est établie cette fonction retourne l'identifiant de cette connexion.
Dans la cas contraire c'est la valeur booléenne FALSE qui est retournée.

3. Sélectionner une base de données MySQLIcone remonter en haut de page

Après vous être connecté à votre base de données MySQL il vous faut sélectionner précisément la base sur laquelle vous aller travailler.

Il faut pour cela utiliser la fonction mysql_select_db().
Celle-ci prend en paramètres le nom de la base à sélectionner et l'identifiant de connexion résultant de la fonction mysql_connect().
Code-source : PHP
$db = mysql_connect("HOST", "LOGIN", "PASSWORD");
mysql_select_db("BDD",$db);

Si la connexion établie et la base indiqué sont trouvé cette fonction retourne la valeur booléenne TRUE, sinon elle retourne la valeur FALSE.

4. Interroger une base de données MySQLIcone remonter en haut de page

Cela revient à envoyer une requête à votre base MySQL afin que les instructions demandées soient exécutées.
Ces instructions peuvent concerner l'insertion, l'interrogation, la modification ou la suppression de données mais cela n'est pas du PHP mais du langage SQL (il faudra donc consulter le cours sur SQL)

Donc quelle que soit la requête SQL que vous souhaitez exécuter sur votre base de données il faut utiliser la fonction PHP mysql_query().
Code-source : PHP
mysql_query("requête MySQL");

La valeur retournée par cette fonction dépend du type de requête envoyé à MySQL.
Si la requête est de type "sélection de donnés" : la fonction retourne FALSE en cas d'échec sinon elle retourne une ressource contenant les données demandées.
Si la requête est de type "modification de donnés" : elle retourne TRUE si les données ont bien été affectées sinon elle retourne FALSE

5. Lire les données résultant d'une requête MySQLIcone remonter en haut de page

Cela consiste à récupérer les données résultant d'une requête de type "sélection" dans le but de leur affecter un traitement PHP et/ou de les afficher.

PHP propose plusieurs fonctions prenant en paramètre la ressource résultant d'une requête et permettant d'arriver à ce résultat, ce sont les suivantes :
mysql_fetch_row()
Cette fonction retourne un tableau à index numérique correspondant à une ligne de résultat, puis décale le pointeur d'un cran.
Ainsi il est possible de récupérer toutes les données d'une table en plaçant cette fonction dans une boucle comme l'illustre l'exemple suivant :
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
while($tab = mysql_fetch_row($sql)) {
echo '<p>Login : '.$tab[0].'<br />';
echo 'Password : '.$tab[1].'</p>';
}
mysql_fetch_assoc()
Cette fonction retourne un tableau associatif (index alphanumérique) correspondant à une ligne de résultat, puis décale le pointeur d'un cran.
Tout comme pour la fonction précédente il faudra utiliser une boucle pour récupérer les données :
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
while($tab = mysql_fetch_assoc($sql)) {
echo '<p>Login : '.$tab['login'].'<br />';
echo 'Password : '.$tab['password'].'</p>';
}

#A2 Si plusieurs champs de la table portent le même nom ce seront les données de la dernières qui seront renvoyer. Pour palier à cela il faudra utiliser des alias sur les noms en doublons.
mysql_fetch_object()
Cette fonction retourne un objet donc les propriétés correspondent à une ligne de résultat, puis décale le pointeur d'un cran.
Encore une fois une boucle nous permettra de récupérer les données :
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
while($tab = mysql_fetch_object($sql)) {
echo '<p>Login : '.$tab -> login.'<br />';
echo 'Password : '.$tab -> password.'</p>';
}
Lorsqu'il n'y a pas ou plus de données renvoyées ces fonctions retournent la valeur booléenne FALSE.

6. Déconnexion de MySQLIcone remonter en haut de page

Bien que cela ne soit pas réellement nécessaire puisqu'une connexion ouverte avec mysql_connect() est automatiquement fermé à la fin du script il est tout de même préférable d'indiquer explicitement cette fermeture.
Pour cela il faut utiliser la fonction mysql_close().
Code-source : PHP
mysql_close()

#A2 Dans le cas où plusieurs connexions sont ouverte mysql_close() prendra en paramètre l'identifiant de la connexion à fermer.
Code-source : PHP
mysql_close($db)

7. D'autres fonctions utiles avec MySQLIcone remonter en haut de page

PHP dispose d'autres fonctions très utiles avec MySQL.
Celles-ci ne sont pas indispensable pour récupérer, traiter et afficher des données mais s'avèreront très utiles pour faciliter le développement de vos applications PHP/MySQL.

mysql_real_escape_string()
Cette fonction est très importante : elle doit toujours être utilisée pour protéger vos données des injections SQL.
De plus elle est très utile puisqu'elle permet d'échapper les caractères spéciaux de vos requêtes (ce qui vous économisera l'utilisation d'un addslashes();)
Code-source : PHP
$login = mysql_real_escape_string($_POST['login']);
$password = mysql_real_escape_string($_POST['password']);
$sql = mysql_query("INSERT INTO table_membre (id, login, password) VALUES ('', $login, $password)");
mysql_free_result()
Cette fonction permet de libérer toutes les ressources utilisées (mémoire) par la ressource résultant d'une requête indiquée en paramètres.
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
$tab = mysql_fetch_assoc($sql);
mysql_free_result($sql);
mysql_insert_id()
Cette fonction retourne le dernier identifiant généré par la dernière requête INSERT sur un champ MySQL en AUTO_INCREMENT.
Elle retourne 0 dans le cas où aucun identifiant n'a été généré et la valeur booléenne FALSE si aucune connexion au server MySQL n'est établie.
Code-source : PHP
$sql = mysql_query("INSERT INTO table_membre (id, login, password) VALUES ('', 'netger', 'xxxxxx')");
echo mysql_insert_id();
mysql_num_rows()
Cette fonction retourne le nombre de ligne résultant d'une requête SELECT.
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
echo mysql_num_rows();
mysql_error()
Cette fonction retourne le dernier message d'erreur généré par une requête MySQL.
Code-source : PHP
$sql = mysql_query("SELECT login, password FROM table_membre");
if(!$sql) echo mysql_error();



Utilisez FireFoxW3C XHTML 1.0W3C CSS 2.1