===== Base de données =====
===== MySQL avec PDO =====
==== Lecture de données ====
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'].'
';
}
$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 '';
while ($donnees = $req->fetch())
{
echo '- '.$donnees['nom'].' ('.$donnees['prix'].' EUR)
';
}
echo '
';
$req->closeCursor();
}
catch (Exception $e)
{
// Affichage de l'erreur si besoin
die('Erreur : '.$e->getMessage());
}
?>
==== Insertion de données ====
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());
}
?>
===== MySQL ancienne methode =====
Voir [[informatique:sql]] pour connaitre les requêtes SQL