В процессе преобразования функциональности mysqli_ в PHP для использования PDO.Я сделал несколько страниц CMS для подтверждения концепции, и это привело меня к кроличьей норе постоянных соединений.
Чтобы избежать бессвязных действий, по сути, я делаю соединение с сервером MySQL, используястарый метод mysqli_connect, а также создание нового ресурса PDO, однако, я вижу только один открытый поток.Поскольку они оба используют одни и те же учетные данные для подключения, они используют общий поток?Любая дополнительная информация также приветствуется.
Спасибо!
К сожалению, код принадлежит правительству, но я могу опубликовать некоторые сокращенные фрагменты, если это поможет.
Метод подключения класса базы данных:
try {
$dsn = "mysql:host="._DBLocation.";dbname="._DBName.";charset=utf8mb4";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_PERSISTENT => true
];
$dbh = new PDO($dsn,_DBUser,self::db_pass(),$options);
self::$conn = $dbh;
return $dbh;
}
catch (exception $e) {
print $e->getMessage();
}
Метод db_pass извлекает пароль из текстового файла на удаленном сервере.Класс просто вызывается через $ pdo = CLASS :: connect ();
Соединение mysqli является одинаковым, однако оно было сделано один раз и сохранялось в сеансе.Пароль получается таким же образом, а также использует предустановленные константы для местоположения и имени БД.
$_SESSION['sql'] = mysqli_connect(_DBLocation,_DBUser,$passwordVar);
Надеюсь, это поможет!