BlueGEEK Journal

Accueil > Manip’s > PHP > mySql > Gérer une Base de données mySQL en PHP

PHP

Gérer une Base de données mySQL en PHP

mySql

dimanche 21 mai 2006, par bluegyn_spip

Gérer une base données MYSQL avec PHP

  • PHP le Personal Home Page langage, sait parfaitement parler au Navigateur en traduisant chacune de ses instructions dans le langage qu’il comprend, le HTML
  • Il sait également parfaitement parler aux bases de données par le langage moderne qu’elles comprennent, le SQL (Standard Query Langage ou Langage d’interrogation Standardisé)

COMMENT CRÉER UNE BASE DE DONNÉES EN PHP ?

L’instruction SQL standardisée est

  • "CREATE DATABASE", pour créer une base, et "DROP DATABASE" pour la supprimer, qui sont des instructions à la fois simples et intuitives.
  • Mais pour PHP ce n’est pas tout a fait aussi simple à matérialiser,
  • Il doit en effet respecter la procédure
    1. D’abord se connecter au serveur en respectant les autorisations d’accès
    2. Puis lui demander de créer (ou supprimer) la base
    3. Enfin se déconnecter du serveur une fois la tâche accomplie, la Base étant alors à disposition des utilisateurs
  • PHP tente de se connecter au serveur par l’instruction
    • mysql_connect (ce qui semble logique)
  • Il peut ensuite injecter du code SQL pour gérer sa Base et son contenu par l’instruction
    • mysql_query
  • Enfin pour la déconnexion
    • mysql_close (nous attendions mysql_disconnect ?)

Ses 3 instructions doivent être argumentées pour être opérationnelles

  • Pour se connecter il faut signifier
    1. Un nom de serveur
    2. Un Login
    3. Un Mot de passe
  • Imaginons que je place les paramètres de connexion dans un fichier INC
    • connect_inc.php
      • $serveur ="localhost" ;
      • $utilisateur ="root" ;
      • $passe ="" ;
  • Le script minimum de Connexion au serveur comportera alors ces 3 lignes :
    1. include("connect_inc.php") ;
    2. $clef_connexion = mysql_connect($serveur, $utilisateur, $passe) ;
    3. mysql_close($clef_connexion)

mysql_connect

  • Appelle le serveur "Localhost" et demande le compte de l’utilisateur "root" en lui fournissant son mot de passe (ici vide)
  • Si l’accès au serveur c’est bien passé, il renvoie au programme une "Clef ou Numéro de Connexion" ( signifiant ainsi qu’il accepte les paramètres saisis et qu’il attend la demande...
  • Si l’accès est refusé, alors il renvoie Zéro qui correspond à la valeur PHP, FAUX ou échec,
  • Le code de l’erreur (et donc la cause de l’échec) peut être récupérée par la fonction
    • mysql_errno
  • Et la description de l’échec par
    • mysql_error
  • Exactement comme dans tous les autres langages évolués
  • Il est habituel de trouver ce genre de code
    • $clef_connexion = mysql_connect($serveur,$utilisateur,$passe) or die ("Echec de connexion au serveur $serveur") ;
    • Qui est une logique à la fois concise et intelligente faisant appel aux propriétés du COMPARATEUR BINAIRE OR (OU)
    • A OU B signifie qu"une seule des 2 conditions doit être réalisée
      • Si la première l’est ALORS la seconde n’est pas testée puisqu’une seule vérité seulement suffit à valider l’équation
      • Si la première est fausse ALORS la seconde est automatiquement exécutée
    • En clair B n’est exécutée que si A est faux (le message d’erreur n’apparaît que si la connexion a échoué)
    • La même instruction peut s’écrire de façon traditionnelle sur 9 lignes
      1. if ($clef_connexion = mysql_connect($serveur,$utilisateur,$passe) )
      2. echo "Connexion réussie"
      3. else
      4. echo "Echec de connexion au serveur $serveur" ;
      5.  ;
      6. exit ;

mysql_query

  • Le serveur a donc accepté votre demande de connexion et vous a remis un numéro d’accès sous la forme d’une Clef d’identification
  • Cette clef vous permet maintenant de valider toutes vos autres Requêtes SQL sur le serveur.
  • Pour créer la Base "PLUMES", l’instruction SQL normalisée est
    • CREATE DATABASE PLUMES
  • L’injection par PHP de cette instruction se fait grâce l’instruction mysql_query
    • $result=mysql_query("CREATE DATABASE PLUMES", $clef_connexion) or echo "Erreur lors de la création de la base de données" ;

mysql_close

  • Ferme la connexion en rendant la clef
    • mysql_close( $clef_connexion ) ;

Tous les codes ici

http://bluegyn.com/wiki/wakka.php?wiki=MySQL/edit