PHP PDO Mysql
Résolu
peice
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
qqq -
qqq -
Bonjour,
je tente de créer une classe de connexion pour MySQL avec les PDO. Mais j'ai un problème lorsque j'appelle certaines fonctions. Voici ma classe :
Ensuite, j'appelle cet objet dans une autre partie du code:
Et là j'obtiens ce message: Fatal error: Call to a member function prepare() on a non-object in
Je ne comprends pas, pourtant je fais appel au DBH de ma classe de connexion, et c'est comme si il ne reconnaissait pas l'objet.. Quelqu'un peut m'aider?
Merci
je tente de créer une classe de connexion pour MySQL avec les PDO. Mais j'ai un problème lorsque j'appelle certaines fonctions. Voici ma classe :
class dbConn { public $dsn; public $dbh; public $database; public $host; public $username; public $password; public function __constructor($host, $username, $password, $database) { $this->host = $host; $this->database = $database; $this->username = $username; $this->password = $password; $this->dsn = 'mysql:host='.$host.'dbname='.$database; self::connect(); } public function connect() { try { $this->dbh = new PDO($dsn, $this->username, $this->password); $this->dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, TRUE); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Erreur: ' . $e->getMessage(); } } public function getInstance() { return ($this->dbh); } }
Ensuite, j'appelle cet objet dans une autre partie du code:
$connexion = new dbConn('localhost', '***********','**********','******'); $dbh = $connexion->getInstance(); $sql = "SELECT * FROM *** WHERE email = :username AND password = :password LIMIT 1"; $stmt = $dbh->prepare($sql); $stmt->setFetchMode(PDO::FETCH_OBJ); $stmt->bindParam(':username', $this->username); $stmt->bindParam(':password', $this->password); $stmt->execute(); $result = $stmt->fetchAll(); foreach ($result as $row) { echo $row->first_name . ' ' . $row->last_name; }
Et là j'obtiens ce message: Fatal error: Call to a member function prepare() on a non-object in
Je ne comprends pas, pourtant je fais appel au DBH de ma classe de connexion, et c'est comme si il ne reconnaissait pas l'objet.. Quelqu'un peut m'aider?
Merci
A voir également:
- PHP PDO Mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
3 réponses
voila, je croix que votre code est correcte mais il y'a quelques erreurs syntaxique:
premiere erreur
public function __construct($host, $username, $password, $database)
2eme erreur
$this->dsn = 'mysql:host='.$host;'dbname='.$database;//ajout d'un poin vergule
3eme erreur
$this->dbh = new PDO($this->dsn, $this->username, $this->password);//il faut ecrire $this->dsn
4eme erreur
pour ma part je prefere de faire
$stmt->execute(array(':username' =>$this->username,':password'=>this->password));
au lieu
$stmt->bindParam(':username', $this->username);
$stmt->bindParam(':password', $this->password);
$stmt->execute();
voila ma reponse est close
de toute facon chez moi ca marche
bonne courage de la part : jugurtha.
premiere erreur
public function __construct($host, $username, $password, $database)
2eme erreur
$this->dsn = 'mysql:host='.$host;'dbname='.$database;//ajout d'un poin vergule
3eme erreur
$this->dbh = new PDO($this->dsn, $this->username, $this->password);//il faut ecrire $this->dsn
4eme erreur
pour ma part je prefere de faire
$stmt->execute(array(':username' =>$this->username,':password'=>this->password));
au lieu
$stmt->bindParam(':username', $this->username);
$stmt->bindParam(':password', $this->password);
$stmt->execute();
voila ma reponse est close
de toute facon chez moi ca marche
bonne courage de la part : jugurtha.
J'ai cette fonction en ajax pour faire liste liee qui ne retourne pas resultat
/**
* Méthode qui retourne les info d'une région selon son id
*
* @param int $id
* @return array
*/
public function getRegionById($id)
{
$prepare = $this->prepare('SELECT region_id, region_name
FROM region
WHERE region_id = "'.$id.'"');
$prepare->execute();
$region = $prepare->fetchAll();
return $region;
}
Je veux avoir une aide
Merci de me répondre si quelqu'un peu
/**
* Méthode qui retourne les info d'une région selon son id
*
* @param int $id
* @return array
*/
public function getRegionById($id)
{
$prepare = $this->prepare('SELECT region_id, region_name
FROM region
WHERE region_id = "'.$id.'"');
$prepare->execute();
$region = $prepare->fetchAll();
return $region;
}
Je veux avoir une aide
Merci de me répondre si quelqu'un peu