Hello,
C'est simple comme bonjour :).
Conseil : ne stocke pas les identifiants à ta BDD en dur dans ta classe PDO, définis les en amont dans ton code, par exemple :
define('MYBDD', 'mysql:dbname=nomdetabase;host=localhost');
define('BDDUSER', 'username');
define('BDDPWD', 'password');
Ensuite tu charges ta classe contenant les constantes définies :
class PDO2 extends PDO {
private static $_instance;
/* Constructeur : héritage public obligatoire par héritage de PDO */
public function __construct( ) {
}
// End of PDO2::__construct() */
/* Singleton */
public static function getInstance() {
if (!isset(self::$_instance)) {
try {
self::$_instance = new PDO(MYBDD, BDDUSER, BDDPWD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
} catch (PDOException $e) {
echo $e;
}
}
return self::$_instance;
}
// End of PDO2::getInstance() */
}
C'est la classe que j'utilise généralement, celle-ci est optimisée pour les BDD en UTF8 ("array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")").
Bref, tu charges ça dans tes scripts et t'es pénard, il suffit alors de créer ton objet PDO pour effectuer tes requêtes :
Il te suffit de créer ton objet PDO comme ceci :
// création de l'objet PDO :
$pdo = PDO2::getInstance();
// préparation de la requête :
$req = $pdo->prepare("SELECT * FROM table");
// exécution de la requête :
$req->execute();
// récupération des résultats de la requête :
while($donnees = $req->fetch()){
$id = $donnees['id'];
}
Perso je te recommande de procéder ainsi pour ne pas te faire chier, suivant l'architecture de ton site il convient de charger les fichiers dans un ordre logique pour ne pas avoir du code redondant et inutile :
- - - Dans tes scripts "généraux" :
1 -> tu définis les constantes en tout premier lieu.
2 -> tu charges ta classe PDO.
3 -> tu crées ton objet PDO.
- - - Dans tes scripts "annexes" :
tu effectues tes requêtes simplement en appelant l'objet PDO créés :
(je ne te redonnes pas d'exemple pour le SELECT)
// exemple d'insertion :
$req = $pdo->prepare("INSERT INTO table (nom, prenom, age) VALUES (:nom, :prenom, :age)");
$req->execute(array(
":nom" => "DUPONT",
":prenom" => "Jean-René",
":age" => 25
));
// exemple d'update :
$req = $pdo->prepare("UPDATE table SET age = :age WHERE nom = :nom");
$req->execute(array(
":age" => 33,
":nom" => "DUPONT"
));
// exemple avec DELETE :
$req = $pdo->prepare("DELETE FROM table WHERE prenom = :prenom");
$req->execute(array(":prenom" => "Jean-René"));
// compter les résultats d'une requête :
$nb = $req->rowCount(); // retourne le nombre de lignes de la requête
Si tu veux en savoir + je t'invite à feuilleter ce tutoriel :
http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql
A+