36 lines
1.3 KiB
PHP
36 lines
1.3 KiB
PHP
<?php
|
|
// config/database.php
|
|
|
|
class Database {
|
|
private $host = "127.0.0.1";
|
|
private $db_name = "VOTRE_BDD";
|
|
private $username = "VOTRE_USER"; // N'utilisez par "root"
|
|
private $password = "VOTRE_MDP";
|
|
public $jwt_secret = "VOTRE_CLE_SECRETE_POUR_JWT"; // Une passphrase est préférable
|
|
public $conn;
|
|
|
|
// Récupérer la connexion
|
|
public function getConnection() {
|
|
$this->conn = null;
|
|
|
|
try {
|
|
$this->conn = new PDO(
|
|
"mysql:host=" . $this->host . ";dbname=" . $this->db_name . ";charset=utf8mb4",
|
|
$this->username,
|
|
$this->password
|
|
);
|
|
|
|
// Options de sécurité et de debug bien pratiques en dev
|
|
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Active les erreurs SQL sous forme d'exceptions
|
|
$this->conn->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); // Renvoie les résultats sous forme de tableau associatif
|
|
|
|
} catch(PDOException $exception) {
|
|
// Si ça plante, on renvoie une erreur JSON propre au lieu d'un gros bug PHP
|
|
http_response_code(500);
|
|
echo json_encode(["error" => "Erreur de connexion à la base de données : " . $exception->getMessage()]);
|
|
exit();
|
|
}
|
|
|
|
return $this->conn;
|
|
}
|
|
} |