Base de données
MySQL avec PDO
Lecture de données
<?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');
// 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());
}
?>
Insertion de données
<?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());
}
?>
MySQL ancienne methode
<?php
// On defini les parametre d'acces a la base de donnees dans une variable
$param_access_db = mysql_connect ('127.0.0.1', 'root', 'abcd1234');
// On se connect a la base de données "phpdb" avec les parametre de la variable ci-dessus
mysql_select_db ('phpdb', $param_access_db);
// On stock le requete SQL dans une variable
$sql = 'SELECT * FROM liste_proprietaire';
// On lance la requete
$req = mysql_query($sql);
// On stock les donnees dans un tableau
$data = mysql_fetch_array($req);
// On libere le memoire
mysql_free_result ($req);
// Ci-dessous on ne peut afficher qu'un seul resultat
echo 'Nom :'.$data['nom']."\n";
echo "\n";
// On stock la requete SQL dans une variable
$sql = 'SELECT * FROM liste_proprietaire';
// On lance la requete
$req = mysql_query($sql) or die ('Erreur SQL :'.$sql.":\n".mysql_error()."\n");
// Tant qu'il y a des resultat a notre requete les affiches comme on veut
while ($data = mysql_fetch_array($req)) {
echo 'Nom :'.$data['nom']."\n";
echo 'Tel :'.$data['telephone']."\n";
echo "\n";
}
// On libere le memoire
mysql_free_result ($req);
// On ferme la connexion SQL
mysql_close ();
?>
Voir
sql pour connaitre les requêtes SQL