MySQL: определить, какая база данных выбрана?

После вызова mysql_select_db для захвата базы данных, есть ли способ позже вывести имя выбранной базы данных? Это кажется очень простым, но я не мог найти ничего на php.net или stackoverflow (все результаты для "не выбраны базы данных" ).

Ответ 1

Просто используйте mysql_query (или mysqli_query, еще лучше, или используйте PDO, лучше всего) с помощью:

SELECT DATABASE() FROM DUAL;

Добавление:

Существует много дискуссий о том, следует ли включать или нет FROM DUAL в этом или нет. На техническом уровне это отрыв от Oracle и может быть безопасно удален. Если вы склонны, вы можете использовать следующее:

SELECT DATABASE();

Тем не менее, возможно, важно отметить, что, хотя FROM DUAL на самом деле ничего не делает, он является синтаксисом MySQL. С строгой точки зрения, в том числе скобки в одной строке, определенные в JavaScript, также ничего не делают, но это по-прежнему действительная практика.

Ответ 2

SELECT DATABASE();

p.s. Я не хотел брать на себя смелость модифицировать ответ @cwallenpoole, чтобы отразить тот факт, что это вопрос MySQL, а не вопрос Oracle и не нуждается в DUAL.

Ответ 3

Вы всегда можете использовать команду STATUS, чтобы познакомиться с текущей базой данных и текущим пользователем

введите описание изображения здесь

Ответ 4

В комментариях http://www.php.net/manual/de/function.mysql-db-name.php Я нашел это от ericpp% bigfoot.com:

Если вам просто нужно имя текущей базы данных, вы можете использовать команду MySQL SELECT DATABASE():

<?php
function mysql_current_db() {
    $r = mysql_query("SELECT DATABASE()") or die(mysql_error());
    return mysql_result($r,0);
}
?>

Ответ 5

@mysql_result(mysql_query("SELECT DATABASE();"),0)

Если ни одна база данных не выбрана или соединение отсутствует, она возвращает NULL в противном случае имя выбранной базы данных.

Ответ 6

SELECT DATABASE() работал в PHPMyAdmin.