18- PHP et MYSQL

0 commentaires
Maintenant que l'on sait créer une base MySQL avec notre assistant, il est temps d'apprendre comment effectuer une connexion sur cette base en php.


Principe d'accès à une base MySQL : 

Schématiquement, il va falloir pour pouvoir accéder à une base de données effectuer le parcours suivant : 
• Se connecter à la base de donnée MySQL en donnant le nom de la machine ou celle-ci se trouve, (host), et en s'identifiant (avec un username et un password) 

• Choisir une base de données parmi celles disponibles même si certains hébergeur ne permettent que de créer une seule base, il faut spécifier le nom de la base sur laquelle on veut travailler • Passer des requêtes SQL via des primitives du genre MySQL_query.... 

• Fermer la connexion même si par défaut lors de la fin du script la fermeture peut se faire automatiquement 

Avec le SGBD MySQL, les fonctions php nécessaires sont les suivantes: 
• mysql_connect 
• mysql_select_db 
• mysql_query 
• mysql_close 

Se connecter au serveur de base de données MySQL : 
Fonction mysql_connect() : 
int mysql_connect(string host, string user, string password,) 
Cette fonction renvoit un identifiant de connexion d'échec de connexion. On peut interdire le warning par défaut du php en la faisant précéder du caractère @. 3 paramètres sont attendus : 

• Le nom d'hôte du serveur de base de données. (ordinateur sur lequel 
le SGBD est installé) 
• Le nom d'utilisateur Mysql 
• Le mot de passe de l'utilisateur

Fonction mysql_close() : 
int mysql_close(int ptrconn) 

Cette fonction renvoit une valeur 0 en cas de réussite de fermeture de 
connexion et 1 sinon. 1 paramètre est attendu : 
• c'est l'identifiant récupéré lors de la connexion à l'host. (ordinateur sur 
lequel le SGBD est installé) via la fonction mysql_connect() 


Essayons juste de nous connecter et de nous déconnecter

Passer des requêtes MYSQL : 

Maintenant que l'on arrive à ouvrir et fermer une connexion sur une base de données publiée sur un serveur SQL, il serait intéressant par exemple de lire le contenu d'une table de cette base ... 

Fonction mysql_query() : 
De manière générale, c'est l'instruction mysql_query qui va permettre de passer n'importe quelle requête SQL, (il faut donc connaître la formulation d'une requête en SQL...) 

int mysql_query(string requete, int ptrconn) 

Cette fonction renvoit une valeur true à 1 en cas de réussite de la requête sur la base de donnée et false à 0 sinon. Ce qui ne signifie rien au niveau des données renvoyées par la requête (une requête peut s'executer correctement et ne pas renvoyer de valeurs…). 2 paramètres sont attendus : 

Commodité d'utilisation 
On définira pour plus de commodités une variable chaîne $query contenant  la requête SQL, que l'on passera en paramètre à la primitive php mysql_query Cela devrait donner alors quelque chose du genre :
$query="requête au format SQL"; 

$result = mysql_query($query);

Il faut se créer un formulaire pour saisir les champs nom et prenom de notre table… 


Ce script récupère depuis le formulaire les variables $nom et $prenom, puis demande d'éxécuter la requête… si une valeur true (différente de 0) est retournée, on sait que la requête s'est effectuée… 


2° exemple de requête MySql : SELECT 

     Nous avons vérifié par Myadmin, que la table simple de notre base essais contenait notre nouvel enregistrement… 

Il est juste bon d'indiquer tout de suite que ne php il existe toute une série de fonctions permettant de manipuler une base mysql. 
Lorsque dans l'exemple précedant, on a passé la requête, à travers 
l'instruction $result = mysql_query($query); 

on a juste testé que le retour était différent de 0(requête effectuée) ou valait 0 (requête non réalisée). Il faut savoir que dans le cas d'une requête effectuée correctement, et ramenant un résultat (c'est le cas d'une requête select), on peut alors passer la valeur retournée par mysql_query à d'autres fonctions, qui interprèterons alors "l'identifiant de résultat". 
Ici mysql_numrows() compte les lignes d'un résultat





0 commentaires:

Enregistrer un commentaire

Copyright 2013 © 2 Rattrapage