Accueil » Articles » Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

CONNEXION A MYSQL ET CREATION DE BASES DE DONNEES AVEC PHP

Dans les prochains chapitres, nous allons voir beaucoup de choses nouvelles. Nous allons déjà apprendre à nous connecter à MySQL grâce au PhP, à créer des bases de données et des tables.

Ainsi, nous découvrirons le langage SQL, obligatoire pour que PhP puisse communiquer avec MySQL. En effet, MySQL ne comprend que le langage SQL. Nous allons donc finalement demander à PhP de transmettre des instructions écrites en SQL à MySQL.

Ensuite, nous verrons comment ajouter, mettre à jour, supprimer ou récupérer des données dans une base de données.

Ce chapitre risque de ne pas être le plus simple à comprendre de tous, étant donné que l’on va utiliser un peu de programmation orientée objet.

N’hésitez pas à prendre votre temps, à revenir dessus et à refaire les différents exemples par vous mêmes pour être certain d’avoir bien compris comment ça fonctionne.

Se connecter à MySQL

Tout d’abord, nous allons devoir établir une connexion avec MySQL. Nous avons deux façons de faire : soit avec MySQLi, soit avec PDO (PHP Data Objects).

MySQLi et PDO sont des extensions de PhP. La bonne nouvelle est que ces extensions sont déjà présentes dans WAMP, MAMP ou XAMPP et devraient normalement être activées.

Si ce que nous allons faire par la suite ne fonctionne pas chez vous, je vous conseille alors de bien vérifier que l’extension choisie est activée pour vous. La procédure étant différente pour chaque logiciel, je vous invite à vous renseigner vous sur le web pour savoir comment faire.

Concernant le choix de l’extension utilisée, je vous conseille PDO pour la simple et bonne raison que cette extension fonctionne avec 12 systèmes de gestion de bases de données différentes (là où MySQLi ne fonctionne qu’avec le MySQL), ce qui signifie que si un jour vous deviez changer de système, cela serait beaucoup plus simple avec PDO.

Nous allons immédiatement voir comment établir une connexion avec MySQL en PhP via l’extension PDO. Pour ce faire, nous allons avoir besoin de 4 informations :

  1. Le nom de l’hôte : l’adresse du serveur où MySQL est installé. Dans notre cas, vu que nous travaillons en local, ce sera « localhost » ;
  2. Le nom de la base de données à laquelle nous souhaitons nous connecter ;
  3. Notre nom d’utilisateur. En local, ça devrait être « root » quelque soit le logiciel que vous utilisez (WAMP, MAMP, XAMPP) ;
  4. Notre mot de passe. Généralement, en local, ce sera soit « root », soit un champ vide.

PDO est une extension orientée objet et donc nous devons utiliser un petit peu de PhP objet pour l’utiliser.

Ci-dessous, on crée donc une instance de la classe PDO. Cette classe a déjà été codée à l’intérieur de l’extension PDO et nous fournit des méthodes qui vont s’avérer très pratique par la suite.

Connexion à la base de données en PhP

On vient donc de créer l’objet $connexion, objet qui représente notre connexion à la base de données et qui va contenir des informations relatives à cette même connexion.

Faites bien attention à ne pas laisser d’espace dans le bout de code définissant le mysql :host et la dbname. Sans rentrer dans les détails, cela ne changerait rien dans l’exemple ci-dessus car nous utilisons le localhost, mais cela poserait problème pour la suite et dans tous les autres cas de figure.

Bien que le code ci-dessus soit tout à fait correct, nous ne pouvons pas nous arrêter là. En effet, nous devons absolument gérer le cas où de mauvaises informations seraient envoyées (mauvais mot de passe, login, nom de base, etc.). Cela rendra votre code plus professionnel et évitera que des informations sensibles soient divulguées à vos visiteurs.

La gestion des erreurs

Nous allons ici nous resservir de ce que nous avons appris dans le chapitre traitant des erreurs (eh oui, tout est lié !) et utiliser un bloc try pour tester la connexion et un bloc catch pour capturer l’erreur.

On va ici à nouveau utiliser un peu de programmation orientée objet et notamment des méthodes de notre classe PDO. Vous reconnaissez entre autre un setter.

Gestion des erreurs lors de la connexion à la base de données en PhP avec PDO

Connexion à la base de données en PhP

Et voilà le résultat si jamais on met un mauvais login et donc que la connexion échoue :

Echec connexion à la base de données

Echec connexion à la base de données

Ca y est, notre script de connexion à notre base de données est complet et opérationnel ! Il est donc temps de passer à la suite.

Création d’une base de données MySQL avec PhP

Jusqu’ici, nous avons appris à nous connecter à une base de données déjà existante.

Mais nous pouvons également, depuis PhP, créer une nouvelle base de données et des tables. C’est ce que nous allons faire ensemble dès maintenant.

Commençons déjà par créer une nouvelle base de données que l’on va appeler « test2 ». On va faire cela comme ça :

Création base de données SQL via PDO PhP

On commence par se connecter à MySQL, sans préciser de base de données cette fois-ci vu que l’on compte en créer une. On stocke les information relatives à cette connexion dans notre objet $connexion.

Nous avons besoin de cet objet pour créer une nouvelle base de données. Pour créer une base de données, il va falloir le demander à MySQL en langage SQL.

Nous allons utiliser la méthode exec qui va nous permettre d’exécuter un code SQL. Exec permet en PhP d’exécuter un programme externe. Dans notre cas, nous allons nous en servir pour créer notre base de données en lui demandant d’exécuter une commande SQL « CREATE DATABASE test2 ».

Cette commande est transparente : elle signifie tout simplement « crée la base de données test2 ». Notez que nous écrirons toujours le SQL en majuscule, par convention.

Normalement, votre base de données devrait être créée :

Création base de données SQL via PDO PhP

Base de données créée

Notez que j’ai cette fois ci utilisé la fonction die en cas d’erreur. C’est une autre façon de faire, qui fait aussi bien le travail même si ce n’est pas strictement nécessaire ici.

Création de tables avec PhP

Nous allons maintenant créer une table « Visiteurs » dans notre base de données. Cette table va contenir 4 colonnes : id, nom, prenom et email.

Pour faire cela, il est important de bien se rappeler comment nous avions déjà fait avec phpMyAdmin puisque nous allons devoir préciser le type de valeur de chaque colonne, le type de clef, etc.

Voilà comment on va s’y prendre :

Création tables via PDO PhP

Pas d’énorme surprise ici (j’espère) : on crée notre table Visiteurs et on définit chaque colonne en mettant les différents attributs à la suite. On sépare chaque colonne par une virgule.

Faites juste bien attention à l’ordre dans lequel vous déclarez chaque chose : vous devez respecter celui déjà vu dans phpMyAdmin.

Création tables via PDO PhP

Table créée avec PDO PhP

Voilà, notre première table est créée ! Il ne nous reste plus qu’à la remplir !

17 commentaires

  1. abdelmalek derouich

    merci infiniment pour ces cours, j’été vraiment nul et maintenant je commence à n’avancer dans la création des sites WEB en utilisant le HTML, le CSS et le PHP et c’est grâce à vos cours minutieusement expliqués.

  2. bonjours ,je suis encore un petit peux débutant dans le codage , j’aimerais faire une page d’inscription et une de connexion en php et mysql je dispose d’une base de donnée . merci d’avance pour votre aide .
    ps : j’adore vos vidéo =)

  3. GLEIZE GÉRARD

    Bonjour Pierre
    Avant toute chose un grand merci pour ce que vous faîtes et honnêtement j’aurais bien aimé avoir eu un prof de votre acabit durant ma scolarité.
    Vu la qualité de vos tutoriels, j’ai franchi le cap pour essayer de construire un site qui pourrai être utile à mon épouse autoentrepreneuse depuis octobre 2014. De part vos encouragements ….
    *dixit : En résumé, ce cours s’adresse :
    Aussi bien au néophyte qu’à la personne expérimentée ;
    A tous ceux qui veulent apprendre à coder en HTML et en CSS.
    …… j’ai déroulé vos cours sur le HTML et CSS sans rencontrer de problèmes majeurs tant vos explications sont claires, nettes et précises. J’ai à cette occasion choisi Komodo comme éditeur de texte pour Linux. Je constate pour le php que vous ne parlez que de gedtit comme éditeur de texte pour Linux. Y a t-il une incompatibilité à poursuivre sur Komodo? Quel est l’outil le + approprié?

  4. Bocomba William Edouard

    bonjour,

    je suis William un de vos disciple Abidjan. En lisant le code source du site pierre-girraud.fr j’ai constater un bon nombre de balise link et de balise meta. Et je me pose la question de savoir a quoi elle servent? Par ailleurs je suis impatient de savourer la suite du cour sur php et mysql. Merci d’avance et surtout merci pour tout.

    Amicalement

    William

  5. Bonjour,

    Je te remercie de tout mon cœur Pierre!
    Tu consacre ton temps à partager des choses meilleures.
    Je suis débutant mais je croix de devenir pro, tes tutos sont claires et faciles à comprendre.
    Merci infiniement

  6. Salut, c’est vraiment génial ce que tu fais mais j’ai encore un problème, je n’arrive pas a créer un formulaire pour envoyer un mail ou pouvoir communiquez avec moi (pas un bloc mais vraiment une page de contact).
    Merci de bien vouloir m’aider…

    • Bonjour,

      J’explique déjà tout cela dans mes cours HTML / CSS et PhP… Je ne peux donc que vous conseillez de revoir les parties consacrées à cela (lien pour envoyer un fichier / un mail et partie formulaire HTML et PhP).

      Bonne continuation,
      Pierre

  7. Vous etes genial, j’ai vu vos cours sur youtube et votre adresses qui ma poussé avenir sur votre site. Mr pierre je suis un petit zero de la programmation mais suis pas mal j’aimerai vous assistez dans vos taches pour me former…! merci pour les cours suis content

  8. je voudrais que tu m’explique un peut comment fonctionne les fonction static en phph

  9. bonjour
    merci pour ce cours mais je ne vois pas la partie base de données et pourtant l’intitulé c’est cours complet!!!!

  10. Salut Pierre Giraud,

    Je viens de regarder le tuto sur HTML et CSS, c’est magnifique !!!
    Maintenant j’aimerais creer des sites dynamiques avec PHP MySQL.
    Pourriez vous m’aider s’il vous plait. Merci de votre aide en envoyant des tuto tres tres interessant.

Répondre

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués d'une étoile *

*