lundi 1 avril 2013

INSERT avec PDO en PHP

Voici une procédure très simple pour insérer (INSERT) des informations dans une base de donnée avec PDO en PHP.

Ceci n'utilise pas les transactions et on doit du coups sécurisé les inputs des utilisateurs.


<?php
$dbname= 'test';
$user = 'user@user.fr';
$password = 'mot de passe';
$host = 'localhost';

try {
    $dbh = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password );
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $dbh->exec("SET CHARACTER SET utf8");
} catch (PDOException $e) {
    echo "<p>Erreur : " . $e->getMessage() . "</p>";
    exit();
}


try {
    /*
     * On récupère le type et le nom d'un formulaire fictif :
     */

    $nom = $dbh->quote($_POST['nom']); // Par exemple : Lion
    $type = $dbh->quote($_POST['type']); // Par exemple : Carnivore
   
    /*
     * Insertion d'une ligne dans MySQL
     * On notera l'abcense de ' autour des variables.
     * En effet, $dbh->quote(); s'en charge pour nous.
     */

    $count = $dbh->exec("INSERT INTO Animaux(type, nom) VALUES ($type, $nom)");

    /*
     * $count contient le nombre de ligne inséré dans la BDD.
     * En l'occurence : 1
     */

    echo '<p>'.$count.' ligne(s) inserée(s)</p>';

    /*
     * Pour fermer la connexion avec la BDD, il suffit d'utiliser cette ligne :
     */

    $dbh = null;
}
catch(PDOException $e)
{
    /*
     * Si on lève une exception, affichage de l'erreur en question :
     */

    echo '<p>Erreur lors de l\'insertion : '.$e->getMessage().'</p>';
}
?>


Ceci est juste un exemple basic d'insertion avec PDO en PHP.

Aucun commentaire:

Enregistrer un commentaire