Я довольно новичок в библиотеке PDO, поэтому извиняюсь за свою неопытность. Я пишу класс, который использует библиотеку PDO для создания и выполнения запросов и возврата результатов, независимо от того, что они собой представляют.Как определить имя базы данных с помощью MySQL PDO
Внутри класса я обнаруживаю, есть ли открытое соединение с базой данных, и если он такой же, как тот, который сконфигурирован, он использует этот. Это очень легко сделать с помощью библиотеки MSSQL в качестве PDO::getAttribute()
функция возвращает CurrentDatabase 'и «SqlServerName», так что я могу просто применить условие, например так:
if(!empty($this->PDO)){
// Get the current connection information
$current_connection = $this->PDO->getAttribute(PDO::ATTR_SERVER_INFO);
// Return if the connection is the same
if($this->connection_parameters['hostname']==$current_connection['SQLServerName']&&$this->connection_parameters['database']==$current_connection['CurrentDatabase']){
return;
}
}
Однако, когда дело доходит до MySQL, данные возвращенный с PDO::getAttribute
полностью отличается, и я не могу получить имя базы данных из текущего соединения.
Означает ли какой-либо орган функцию или метод для получения подключенной в настоящее время базы данных соединения MySQL с использованием библиотеки PDO
в PHP
?
Спасибо за ваш ответ, но я бы предпочел сделать это, не используя запрос. Я буду использовать этот метод как последнее средство –