MySQL:确定选择了哪个数据库?

时间:2011-11-11 15:54:30

标签: mysql

在调用mysql_select_db来获取数据库后,有没有办法在以后输出当前选中的数据库的名称?这看起来很基本,但我在php.net或stackoverflow上找不到任何东西(所有结果都是“没有选择数据库”)。

8 个答案:

答案 0 :(得分:286)

使用mysql_query(或mysqli_query,甚至更好,或者最好使用PDO):

SELECT DATABASE() FROM DUAL;

附录:

关于是否应该包括FROM DUAL,有很多讨论。在技​​术层面上,它是Oracle的延续,可以安全地删除。如果您愿意,可以使用以下代码:

SELECT DATABASE();

也就是说,重要的是要注意,虽然FROM DUAL实际上并不任何东西,但它是有效的MySQL语法。从严格的角度来看,在JavaScript中以条件为单位包括大括号也不会做任何事情,但它仍然是一种有效的做法。

答案 1 :(得分:79)

SELECT DATABASE();

P.S。我不想冒昧地修改@ cwallenpoole的答案,以反映这是一个MySQL问题,而不是Oracle问题而且不需要DUAL

答案 2 :(得分:39)

您始终可以使用STATUS命令来了解当前数据库&当前用户

enter image description here

答案 3 :(得分:9)

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);
}
?>

答案 4 :(得分:2)

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

如果未选择数据库,或者没有连接,则返回NULL,否则返回所选数据库的名称。

答案 5 :(得分:2)

稍微偏离主题(使用CLI而不是PHP),但仍然值得了解: 您可以使用以下任何

设置提示以显示默认数据库
mysql --prompt='\d> '
export MYSQL_PS1='\d> '

或内幕

prompt \d>\_
\R \d>\_

答案 6 :(得分:1)

另一种用特定单词过滤数据库的方法。

SHOW DATABASES WHERE `Database` LIKE '<yourDatabasePrefixHere>%'
or
SHOW DATABASES LIKE '<yourDatabasePrefixHere>%';

示例:

SHOW DATABASES WHERE `Database` LIKE 'foobar%'
foobar_animal
foobar_humans_gender
foobar_objects

答案 7 :(得分:0)

SELECT DATABASE()在PHPMyAdmin中工作。