是否有办法在以后输出当前选择的数据库的名称?


当前回答

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

SELECT DATABASE();

附录:

关于FROM DUAL是否应该包含在其中有很多讨论。在技术层面上,它是Oracle遗留下来的,可以安全地移除。如果你有兴趣,可以这样使用:

SELECT DATABASE() FROM DUAL;

也就是说,可能需要注意的是,虽然FROM DUAL实际上不做任何事情,但它是有效的MySQL语法。从严格的角度来看,在JavaScript的单行条件中包含大括号也没有任何作用,但这仍然是一种有效的实践。

其他回答

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

SELECT DATABASE();

附录:

关于FROM DUAL是否应该包含在其中有很多讨论。在技术层面上,它是Oracle遗留下来的,可以安全地移除。如果你有兴趣,可以这样使用:

SELECT DATABASE() FROM DUAL;

也就是说,可能需要注意的是,虽然FROM DUAL实际上不做任何事情,但它是有效的MySQL语法。从严格的角度来看,在JavaScript的单行条件中包含大括号也没有任何作用,但这仍然是一种有效的实践。

SELECT DATABASE();

附注:我不想擅自修改@cwallenpoole的答案,以反映这是一个MySQL问题而不是Oracle问题,不需要DUAL的事实。

您可以随时使用STATUS命令来了解当前数据库和当前用户

有点偏离主题(使用CLI而不是PHP),但仍然值得了解: 可以使用以下任何方法设置提示符以显示默认数据库

mysql --prompt='\d> '
export MYSQL_PS1='\d> '

或者一旦进入

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

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

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

例子:

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