Bonjour,
Voila je rencontre un petit problème avec mon code.
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';
}
}
}
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é.
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
Bonjour,
Je pense qu'il manque un / devant require.... "class".
De plus, tu as fais des erreurs dans le constructeur de Database