Лучше использовать для этого синглтон . Таким образом, вы избегаете открытия нескольких соединений с базой данных:
<?php
class Database
{
public static $pdo;
public static function getPDO()
{
if (null === self::$pdo) {
$dsn = "mysql:host=localhost;dbname=db;";
$options = [
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
self::$pdo = new PDO($dsn,'root','', $options);
} catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
}
return self::$pdo;
}
//protected constructor
protected function __construct()
{
}
}
Тогда используйте
require_once('path/to/database.php'); //the file with Database class
$pdo = Database::getPDO();
Конечно, вам нужно включить этот файл / класс в каждую страницу.
Кроме того, не стоит жестко кодировать учетные данные вашей базы данных. Лучшая загрузка из файла .env
, getenv()
или .ini
.