Ci-dessous, les différences entre deux révisions de la page.
| 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/30 13:17] 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> | <sxh php> | ||
| <?php | <?php | ||
| Ligne 12: | Ligne 13: | ||
| // Stockage des resultats dans un tableau sous la variable $reponse | // Stockage des resultats dans un tableau sous la variable $reponse | ||
| - | $reponse = $bdd->query('SELECT * FROM jeux_video'); | + | $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' | // Tant qu'il y a des éléments on affiche la donnée du champs 'nom' | ||
| Ligne 21: | Ligne 22: | ||
| $reponse->closeCursor(); // Termine le traitement de la requête | $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) | catch (Exception $e) | ||
| Ligne 30: | Ligne 50: | ||
| </sxh> | </sxh> | ||
| - | ==== Connexion MySQL ancienne methode ==== | + | ==== 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 | ||