Le site de référence en environnement
et sciences de la Terre depuis 2001

english deutsch
Envoyer cette page
Cours PHP  rss  Plan du site

connexion Se connecter

Login (email)  
Mot de passe mémoriser
 
Devenir membreRetrouver vos identifiants

Plus que 18 jours pour gagner 5 jeux !

Marre de la pub ? Devenez membre premium !

actu21 décembre 2012 : la fin du monde ?
actu"Il est déjà trop tard" : l'espèce humaine devrait s'éteindre ce siècle
actuDémographie : la vraie vérité qui dérange
actuLes abeilles, témoins du bon état de notre environnement, disparaissent massivement
actuUn nouveau "continent" de déchets a été découvert dans l'océan Atlantique Nord !
actuManger autant de viande est une aberration pour l'environnement et la santé
actuLe pic pétrolier mondial : on doit s'y préparer dès maintenant !
actuLimiter l'augmentation de la température planétaire à 2 ºC n'est plus réalisable
actuLe déclin de l'industrie nucléaire
actu7 milliards d'habitants sur Terre
actuPollution de l'air : plus de 2 millions de morts par an

Marre de la pub ? Devenez membre premium !

Sondage Février 2012

Découvrez l'agenda du mois
> > Février 2012 < <

Marre de la pub ? Devenez membre premium !

www.notre-planete.info : environnement, développement durable et sciences de la Terre

Accèder aux bases de données avec PHP

Introduction

L'intérêt majeur de PHP est son interfaçage avec un grand nombre de bases de données d'une manière relativement simple et efficace.
Nous a vons vu en introduction que pratiquement tous les SGBD sont pris en charge, mais PHP s'utilise bien souvent avec MySQL, un SGBD rapide (à moyenne charge) et qui satisfait à la plupart des sites Internet, même si il n'a pas encore toutes les potentialités d'autres... Mais rassurons nous, MySQL est exploitable même pour des bases de données de plusieurs Giga-octets et son moteur est basé sur la norme ANSI SQL 92.
Nous développerons ici les fonctions PHP qui permettent d'exploiter des bases de données MySQL.
Pour la visualisation de vos tables et bases de données MySQL nous vous conseillons l'emploi de l'excellent phpMyAdmin qui est une interface en ligne très simple d'utilisation et redoutable dans ses possibilités.

Périmètre et limites

Nous ne passerons pas en revue les différentes commandes SQL mais nous privilégierons leurs interactions avec PHP. Une bonne connaissance préalable des SGBD et des types de données que l'on y trouve est donc nécessaire.
Enfin, il vous appartient de savoir comment on remplit une base de données manuellement pour son exploitation avec PHP.

Utiliser MySQL avec PHP

Pour se connecter à MySQL via PHP on utilise une API (Application Programming Interface, ou interface de programmation d'application) qui définit les classes, méthodes, fonctions et variables dont votre application va faire usage pour exécuter différentes tâches.

Les API peuvent être procédurale ou orientée objet. Avec une API procédurale, vous pouvez appeler les fonctions pour exécuter des commandes ; avec une API orientée objet, vous devez créer des objets et appeler les méthodes de ces objets.

Il existe trois API principales pour se connecter à MySQL :

  • L'extension mysql (pour les versions PHP < 4.1.3)
  • L'extension mysqli (mysql improved pour les versions PHP > 5)
  • PHP Data Objects (PDO) qui a des fonctionnalités moins avancées que mysqli mais permet de travailler avec différentes bases de données en conservant le même code.

Nous utiliserons ici l'extention mysqli avec une syntaxe orientée objet.

Etapes pour se connecter à une base de données

L'exploitation de MySQL avec PHP s'effectue en plusieurs étapes :

  1. ouverture d'une connexion à MySQL et sélection de la base de données
  2. requête sur la base de données
  3. exploitation des résultats de la requête
  4. fermeture de la connexion à MySQL

Ouvrir une connexion la base de données MySQL

Avant d'exploiter les données qui se trouvent sur notre base, il nous faut ouvrir un canal de communication qui ne sera fermé qu'une fois toutes nos opérations effectuées.
Notre base de données se trouve sur un serveur désigné avec un nom de domaine, un adresse IP ou un alias. Pour nous y connecter, il nous faut un login et un mot de passe. Tous ces paramètres sont fournis par votre hébergeur lorsque vous ouvre un hébergement.
Nous choisirons pour nos exemples les variables suivantes :

<?php
$serveur 
"mysql.monserveursql.com";
$base "mabase";
$user "monuser";
$pass "monpass";
?>

Précisons que les informations qui vous sont fournies par votre hébergeur sont confidentielles et ne doivent en aucun cas être communiquées sous peine de voir vos bases modifiées ou détruites par des personnes malintentionnées.

Pour se connecter, on utilise la classe mysqli comme ci-dessous :

<?php
$serveur 
"mysql.monserveursql.com";
$base "mabase";
$user "monuser";
$pass "monpass";

/*
$mysqli est une nouvelle instance de la classe mysqli
prédéfinie dans php et hérite donc de ses propriétés et méthodes
connexion à la base de données
*/
$mysqli = new mysqli($serveur$user$pass$base);

/*
utilisation de la méthode connect_error
qui renvoie un message d'erreur si la connexion échoue
*/
if ($mysqli->connect_error) {
    die(
'Erreur de connexion ('.$mysqli->connect_errno.')'$mysqli->connect_error);
}
?>

Ici, nous effectuons un test pour savoir si la connexion est effective ou pas avec l'alias die() (de exit()) : en cas d'échec, le code s'interrompra ici en affichant l'erreur rencontrée par MySQL (donnée dans la méthode connect_error.
On pourrait également faire un test plus classique comme ci-dessous :

<?php
if ($mysqli->connect_error) {
    echo 
'connexion impossible... :'.$mysqli->connect_error;
}
else {
    echo 
'connexion réussie : '.$mysqli->host_info;
}
?>

Résultat si tout se pase bien :

connexion réussie : Localhost via UNIX socket

Afin d'éviter de définir vos identifiants de connexion à chaque fois que vous exploitez votre base de données, il est utile de les préciser dans un fichier qui sera appelé à chaque fois via l'instruction include(). Ainsi, vous pourrez facilement les mettre à jour si besoin et renforcerez la sécurité de votre site web (en protégeant l'accès à ce fichier via un fichier .htaccess sur les serveurs Apache).

Fermer la connexion

Normalement, la fermeture de la connexion se fait automatiquement, mais afin de s'en assurer, on peut utiliser la méthode close()

<?php
$mysqli
->close();
?>


Haut de page ^ Offres d'emploi et CV     Livres et DVD     Associations     Communiqués     Agenda     rss Flux RSS     Partenaires

Page mise à jour le 01/12/2011  22 connectés© 2001-2012 notre-planete.info® v. 5.69 - tous droits réservés
notre-planete.info est un site indépendant qui informe et sensibilise objectivement sur l'environnement, l'écologie, les sciences de la Terre et le développement durable
Mentions légales  |   Presse  |   Publicité  |   Contact  |   Liens et logos  |   Soutenez notre-planete.info !