1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| try{
//la connexion
$encodage=array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES "UTF8"');
$dbh = new PDO('mysql:host=myhost;dbname=mydb', 'login', 'password', $encodage);
//imaginons une table fruit avec id (autoincrement), nom(varchar 50), couleur (enum), poids (int en grammes), calories (int), et date_saisie(timestamp)
//ajoutons la clé d'unicité suivante (primordial) : nom+poids+calories = unique
//exemple d'acces en lecture via une saisie utilisateur
$sql='SELECT nom, calories
FROM fruit
WHERE poids < ? AND couleur = ?';
$sth = $dbh->prepare($sql);
$sth->execute(array($_POST['poids_maxi'], $_POST['couleur'));
$data=array();
while($row=$sth->fetch(PDO::FETCH_ASSOC)){
$data[]=$row;
}
echo '<pre>';
print_r($data);
echo '</pre>';
//exemple d'acces en écriture via une saisie utilisateur
//ignore pour ne pas que ça couine en cas de tentative d'insérer un doublon : ça n'insèrera rien, mais ça ne fera pas planter le script
$sql='insert ignore into fruit values (NULL,?,?,?,?,?)';
$sth = $dbh->prepare($sql);
//encore une fois, chaque point d'interrogation ci dessus doit etre fourni ci dessous et dans l'ordre de la table
if($sth->execute(array($_POST['nom'], $_POST['couleur'],$_POST['poids'],$_POST['calories'],date("%Y-%m-%d :H:i:s")))){
echo 'Votre insertion a bien été effectuée<br/>';
$stmt = $dbh->prepare('select * from fruit order by date_saisie desc;');
$stmt->execute();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
echo '<pre>';
print_r($row);
echo '</pre>';
}
}
else{
echo 'ERREUR insertion<br/>';
}
//déconnexion propre
unset($dbh);
}
catch( PDOException $Exception ) {
echo $Exception->getMessage();
} |
Partager