Salut a tous, je commence la programation objet avec une simple classe de connections pour comprendre le principe...
je rencontre un soucis, a 1er vu et si je comprend bien: Fatal error: Cannot access empty property in C...
$this-> ne peut jamais etre vide en php, mon soucis est que j'ai (private $password = '';) qui est forcement vide car je suis en local...
est ce que je me trompe ? ya t'il une solution ?
ma classe:
<?php
Class DB {
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'bdd';
private $db;
public function __construct($host = null, $database = null, $username = null, $password = null) {
if ($host != null) {
$this->host = $host;
$this->username = $username;
$this->password = $password;
$this->database = $database;
}
try {
$this->db = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->database, $this->username, $this->password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
} catch (PDOException $e) {
die('<h1>Impossible de se connecter a la base de donnees !</h1>');
}
}
public function query($sql) {
$req = $this->$db->prepare($sql);
$req->execute();
return $req->fetchAll(PDO::FETCH_OBJ);
}
}
?>
mon index:
<?php
require 'dbClass.php';
$DB = new DB();
var_dump($DB->query('SELECT * FROM table'));
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>contenu</div>
</body>
</html>
au cas ou je me trompe...
Salut a tous, je commence la programation objet avec une simple classe de connections pour comprendre le principe...
je rencontre un soucis, a 1er vu et si je comprend bien: Fatal error: Cannot access empty property in C...
$this-> ne peut jamais etre vide en php, mon soucis est que j'ai (private $password = '';) qui est forcement vide car je suis en local...
est ce que je me trompe ? ya t'il une solution ?
ma classe:
[php]<?php
Class DB {
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'bdd';
private $db;
public function __construct($host = null, $database = null, $username = null, $password = null) {
if ($host != null) {
$this->host = $host;
$this->username = $username;
$this->password = $password;
$this->database = $database;
}
try {
$this->db = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->database, $this->username, $this->password,
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
} catch (PDOException $e) {
die('<h1>Impossible de se connecter a la base de donnees !</h1>');
}
}
public function query($sql) {
$req = $this->$db->prepare($sql);
$req->execute();
return $req->fetchAll(PDO::FETCH_OBJ);
}
}
?>
[/php]
mon index:
[php]<?php
require 'dbClass.php';
$DB = new DB();
var_dump($DB->query('SELECT * FROM table'));
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div>contenu</div>
</body>
</html>[/php]
au cas ou je me trompe...