TP : Connexion à la base de donnée //Soucis avec le "app"

Par Kyusha, il y a 9 ans


Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

J'apprend les base de PDO avec le tuto nommé "TP : Connexion à la base de donnée", mais je rencontre une erreur, qui je pense est lié avec le namespace app et / ou la class Database

Database.php <?php namespace App; use \PDO; class Database{ private $db_name; private $db_user; private $db_pass; private $db_host; private $pdo; public function __construct($db_name, $db_user = 'root', $db_pass= '', $db_host = 'localhost'){ $this->db_name = $db_name; $this->$db_user = $db_user; $this->$db_pass = $db_pass; $this->$db_host = $db_host; } private function getPDO() { $pdo = new PDO('mysql:dbname=ligue;host=localhost', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $this->pdo = $pdo; return $pdo; } public function query($statement){ $req = $this->getPDO()->query($statement); $datas = $req->fetchAll(PDO::FETCH_OBJ); return $datas; } } home.php <?php $db = new App\Database('ligue'); $datas = $db->query('SELECT * FROM formation'); var_dump($datas); index.php <?php require '../App/Autoloader.php'; App\Autoloader::register(); if(isset($_GET['p'])) { $p = $_GET['p']; }else{ $p = 'home'; } ob_start(); if($p === 'home') { require '../pages/home.php'; } elseif ($p === 'single'){ require '../pages/single.php'; } $content = ob_get_clean(); require '../pages/templates/default.php'; //Et pour finir voici Autoloader.php <?php namespace App; /** * Class Autoloader * @package Tutoriel */ class Autoloader{ /** * Enregistre notre autoloader */ static function register(){ spl_autoload_register(array(__CLASS__,'autoload')); } /** * Inclue le fichier correspondant à notre classe * @param $class string Le nom de la classe à charger */ static function autoload($class){ if (strpos($class, __NAMESPACE__ . '\\') === 0){ $class = str_replace(__NAMESPACE__ . "\\", '', $class); $class = str_replace('\\', '/', $class); require __DIR__ . 'class/' . $class . '.php'; } } }

Ce que je veux

J'aimerais pouvoir afficher les infos de ma bdd
Désolé de tout afficher en vrac comme ca, c'est la premiere fois que je poste un probleme lié à un code et je suis perdu par apport a ce namespace "app"
Je vais continuer à y reflechir cette nuit et mettrait à jour en fonction de mon avancé.

Ce que j'obtiens

j'ai ces deux erreurs :
"Warning: require(C:\wamp64\www\Blog\appclass/Database.php): failed to open stream: No such file or directory in C:\wamp64\www\Blog\app\Autoloader.php on line 24"
Je comprend pas le "\appclass/"

Fatal error: require(): Failed opening required 'C:\wamp64\www\Blog\appclass/Database.php' (include_path='.;C:\php\pear') in C:\wamp64\www\Blog\app\Autoloader.php on line 24

1 réponse

Carouge10, il y a 9 ans

Bonjour,
Je pense qu'il manque un / devant require.... "class".
De plus, tu as fais des erreurs dans le constructeur de Database