После вызова mysql_select_db
для захвата базы данных, есть ли способ позже вывести имя выбранной базы данных? Это кажется очень простым, но я не мог найти ничего на php.net или stackoverflow (все результаты для "не выбраны базы данных" ).
MySQL: определить, какая база данных выбрана?
Ответ 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.