34 lines
1.2 KiB
PHP
34 lines
1.2 KiB
PHP
stocker le nom d'utilisateur et le mot de passe dans la classe n'est pas une très bonne idée pour le code mis en production ... Une bonne solution consiste a stocker les paramètres de connexion à la base de données dans un fichier .ini et à en restreindre l'accès. Par exemple de cette façon:
|
|
|
|
private static $serveur='mysql:host=localhost';
|
|
private static $bdd='dbname=gsb2021';
|
|
private static $user='root' ;
|
|
private static $mdp='root' ;
|
|
|
|
gsb.ini:
|
|
[database]
|
|
driver = mysql
|
|
host = localhost
|
|
port = 3306
|
|
schema = gsb2021
|
|
username = root
|
|
password = root
|
|
|
|
|
|
Database connection:
|
|
<?php
|
|
class MyPDO extends PDO
|
|
{
|
|
public function __construct($file = 'gsb.ini')
|
|
{
|
|
if (!$settings = parse_ini_file($file, TRUE)) throw new exception('acces impossible ' . $file . '.');
|
|
|
|
$dns = $settings['database']['driver'] .
|
|
':host=' . $settings['database']['host'] .
|
|
((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
|
|
';dbname=' . $settings['database']['schema'];
|
|
|
|
parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
|
|
}
|
|
}
|
|
?>
|