Bonsoir,
Je suis un novice avec la POO, elle la j'avoue que j'ai un peu de mal. Je m'explique j'aimerai créer des class pour appeler des champs dans ma base de donnée.
J'ai ma première class php de connexion à la base de donnée avec PDO :
<?php
class DB extends Site{
private $host = 'localhost';
private $username = 'root';
private $password = 'root';
private $database = 'guillaumevallon';
private $db;
public function __construct($host = null, $username = null, $password = null, $database = 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){
Site::WriteHtmlMessage('danger','Connexion impossible au serveur de base de donnée');
}
}
public function query($sql, $data = array()){
$req = $this->db->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
return true;
}
}
Ensuite je souhaiterai utiliser ma fonction DB::quai dans une autre class afin de lancer une requête SQL pour récupèrer les champs comme le nom, l'id etc...
ma class :
<?php
class Photos extends DB {
function __construct($Id) {
$photos = $this->DB->query('SELECT * FROM images WHERE OnLIne = 1 AND IdGallery=:id', array('id' => $Id));
}
public function getName() {
echo $images->Name;
}
}
et mon fichier gallery.php :
require 'class/images.class.php';
$Photo = new Photos($_GET'id']);
sauf que évidement, je ne sais absolument pas le faire...
php me donne en info que $this->DB n'est pas un objet...
J'ai cherché pas mal sur internet, mais je ne sais pas comment récupérer les infos de connexion dans mon autre class, et je ne sais pas comment je pourrai récupérer les retour de PDO pour juste faire un
<?= $photos->getName ?>
Merci pour votre éclaircissement ;-)