Outils pour utilisateurs

Outils du site


informatique:programmation:php:database

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:programmation:php:database [2011/10/29 17:21]
benoit
informatique:programmation:php:database [2018/09/06 19:10] (Version actuelle)
Ligne 1: Ligne 1:
 ===== Base de données ===== ===== Base de données =====
-==== Connexion ​MySQL avec PDO ====+====MySQL avec PDO ====
 +==== Lecture de données ==== 
 +<sxh php> 
 +  <?php 
 +  // Les instructions dans le try et le catch sont requise pour eviter d'​afficher le detail d'une erreur. Notamment le mot de passe vers la base données. 
 +  try 
 +  { 
 +    // On active les exceptions de PDO (a faire systematiquement) 
 +    $pdo_options[PDO::​ATTR_ERRMODE] = PDO::​ERRMODE_EXCEPTION;​ 
 +    // Connexion à la base de données 
 +    $bdd = new PDO('​mysql:​host=localhost;​dbname=testbs',​ '​testbs',​ '​testbs974'​);​
  
-==== Connexion ​MySQL ancienne methode ====+    // Stockage des resultats dans un tableau sous la variable $reponse 
 +    $reponse = $bdd->​query('​SELECT * FROM jeux_video LIMIT 5'); 
 + 
 +    // Tant qu'il y a des éléments on affiche la donnée du champs '​nom'​ 
 +    while ($donnees = $reponse->​fetch()) 
 +    { 
 +      echo $donnees['​nom'​].'<​br />';​ 
 +    } 
 + 
 +    $reponse->​closeCursor();​ // Termine le traitement de la requête 
 + 
 +    //Le methode query utilise ci-dessus n'est pas recommandé car elle pourrait permettre des injections SQL 
 +    //Utiliser plutôt me methode '​prepare'​ ci-dessous 
 +    //Voici nos deux variables à utiliser dans la requete SQL 
 +    $nom_possesseur = '​Florent';​ 
 +    $prix_max = 20; 
 + 
 +    // On prepare la requete sans y faire figurer les deux variables. chaques ? représente une variable qui sera insérée dans la requete 
 +    $req = $bdd->​prepare('​SELECT nom, prix FROM jeux_video WHERE possesseur = ? AND prix <= ? ORDER BY prix'​);​ 
 +    // On execute la requete en insérant les variables dans le même ordre que les ? 
 +    $req->​execute(array($nom_possesseur,​ $prix_max));​ 
 + 
 +    echo '<​ul>';​ 
 +    while ($donnees = $req->​fetch()) 
 +    { 
 +      echo '<​li>'​.$donnees['​nom'​].'​ ('​.$donnees['​prix'​].'​ EUR)</​li>';​ 
 +    } 
 +    echo '</​ul>';​ 
 +    $req->​closeCursor();​ 
 +  } 
 +  catch (Exception $e) 
 +  { 
 +    // Affichage de l'​erreur si besoin 
 +    die('​Erreur : '​.$e->​getMessage());​ 
 +  } 
 +  ?> 
 +</​sxh>​ 
 + 
 +==== Insertion de données ==== 
 +<sxh php> 
 +  <?php 
 +  try 
 +  { 
 +    $pdo_options[PDO::​ATTR_ERRMODE] = PDO::​ERRMODE_EXCEPTION;​ 
 +    $bdd = new PDO('​mysql:​host=localhost;​dbname=testbs',​ '​testbs',​ '​testbs974'​);​ 
 + 
 +    // On prepare la requete 
 +    $req = $bdd->​prepare('​INSERT INTO jeux_video(nom,​ possesseur, console, prix, nbre_joueurs_max,​ commentaires) VALUE(:nom, :​possesseur,​ :console, :prix, :​nbre_joueurs_max,​ :​commentaires)'​);​ 
 +    // On execute la requete en renseignant les données. Les données peuvent être remplacées par des variables 
 +    $req->​execute(array( 
 +        '​nom'​ => '​Battlefield 1942',​ 
 +        '​possesseur'​ => '​Patrick',​ 
 +        '​console'​ => '​PC',​ 
 +        '​prix'​ => 45, 
 +        '​nbre_joueurs_max'​ => 50, 
 +        '​commentaires'​ => '2nde guerre mondiale'​ 
 +        )); 
 +  } 
 +  catch (Exception $e) 
 +  { 
 +    die('​Erreur : '​.$e->​getMessage());​ 
 +  } 
 +  ?> 
 +</​sxh>​ 
 + 
 +===== MySQL ancienne methode ​=====
 <sxh php> <sxh php>
   <?php   <?php
informatique/programmation/php/database.1319901672.txt.gz · Dernière modification: 2018/09/06 19:00 (modification externe)