Je te remercie pour tes réponses ça m'aide bien
Bien j'avance un peu, je pense avoir réussis à faire ma connection PDO en Singleton.
Cependant j'ai des erreurs quand j'utilises certaines méthodes de PDO:
PDOconnect.php
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
|
<?php
class PDOconnect{
private static $instance = null;
public function __construct() {
}
public static function getInstance() {
if (!self::$instance) {
require_once('/config/config_bdd.php');
self::$instance = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
private function __clone() {
/* interdiction de cloner l'instance */
}
public static function disconnect() {
if (!self::$instance){
return false;
}
self::$instance = NULL;
return true;
}
}
?> |
Utilisateur.class.php
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
| <?php
class Utilisateur {
private $idUtilisateur;
private $xpUtilisateur;
private $statutUtilisateur;
private $idNiveau;
// function __construct($idUtilisateur, $xpUtilisateur, $statutUtilisateur, $idNiveau) {
// $this->idUtilisateur = $idUtilisateur;
// $this->xpUtilisateur = $xpUtilisateur;
// $this->statutUtilisateur = $statutUtilisateur;
// $this->idNiveau = $idNiveau;
// }
public function readUtilisateurs() {
$DB = PDOconnect::getInstance();
foreach ($DB->query("SELECT * FROM Utilisateurs") as $row) {
echo '<pre>';
echo $row['idUtilisateur']." " ;
echo $row['xpUtilisateur']." ";
echo $row['statutUtilisateur']." ";
echo $row['idNiveau'] ;
echo '</pre>';
}
}
public function findUtilisateur($idUtilisateur) {
$data = array(($idUtilisateur));
$db = PDOconnect::getInstance();
$db->prepare( "SELECT * FROM utilisateurs WHERE idUtilisateur= ? ");
$db->execute($data);
$res = $db->fetch(PDO::FETCH_OBJ);
echo $res->gradeUtilisateur;
}
}
?> |
Enfin mon index où je test :
1 2 3 4 5 6 7 8 9
| <?php
require_once('/class/PDOconnect.php');
require_once('/class/Utilisateur.class.php');
$utilisateur = new Utilisateur();
$utilisateur->readUtilisateurs();
$utilisateur->findUtilisateur(2);
?> |
$utilisateur->findUtilisateur ne fonctionne pas:
Cela me retourne cet erreur :
Fatal error: Call to undefined method PDO::execute() in C:\wamp\www\feedgamer\class\Utilisateur.class.php on line 77
Je comprends pas pourquoi, je pensais qu'il fallait extends sur PDO ou PDOstatement, mais ça change rien..
Voilà j'ai besoin d'aide...
Partager