Message d'erreur Class PHP
Bonjour,
J'ai besoin d'aide. Le message d'erreur suivant s'affiche lorsque je clique sur mon bouton valider l'inscription : Fatal error: Call to a member function prepare() on a non-object in /home/XXX/public_html/bdd.php on line 81
La ligne 81 correspond a addPlayer
Si une âme généreuse se sent d'humeur à venir en aide à un débutant :)
Pour le code :
Page inscription
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <?php
require("bdd.php");
$host ='localhost';
$dbname = 'XX';
$username = 'ZZ';
$psw = '123';
$bdd = new BaseDonnees($host, $dbname, $username, $psw);
$bdd->start();
if (isset($_POST['envoyer'])){
$name = $_POST['name'];
$passwrd = $_POST['passwrd'];
$money = 500;
if ($_POST['name'] != ""){
if ($_POST['passwrd'] != ""){
$bdd->addPlayer($name, $passwrd, $money);
echo "Votre compte a bien été enregistré.";
$req->closeCursor();
}
}
} |
Page bdd
Code:
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
| <?php
class BaseDonnees {
private $bdd;
private $host;//='localhost';
private $dbname;// = 'XX';
private $username;// = 'ZZ';
private $psw;// = '123';
public function __construct($host, $dbname, $username, $psw){
$this->host=$host;
$this->dbname=$dbname;
$this->username=$username;
$this->psw=$psw;
}
// GETTERS
// SETTERS
public function start() {
try {
$bdd = new PDO('mysql:host=localhost;dbname=XX;charset=utf8', 'XX', '123', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) {
echo 'Connexion échouée : ' . $e->getMessage();
}
}
public function connexion($name, $passwrd){
$requete = 'SELECT * FROM Player WHERE name = :t_name AND passwrd = :t_passwrd;';
$req = $this->bdd->prepare($requete);
$req->execute(array(':t_name' => $name, ':t_passwrd' => $passwrd));
$result = $req->fetch();
}
public function addPlayer($name, $passwrd, $money){
$bdd = "";
$requete = 'INSERT INTO Player (id, name, passwrd, money) VALUES ("", ?, ?, ?)';
$req = $this->bdd->prepare($requete);
$req->execute(array($name, $passwrd, $money));
}
} |