MySQL:确定select哪个数据库?
在调用mysql_select_db
来获取数据库之后,有什么办法可以输出当前选中的数据库的名字吗? 这似乎很基本,但我找不到任何关于php.net或stackoverflow(所有结果是“没有数据库select”)。
只需使用mysql_query(或者mysqli_query,更好,或者使用PDO,最重要的是):
SELECT DATABASE() FROM DUAL;
附录:
关于FROM DUAL
是否应该包含在这个问题上还有很多的讨论。 在技术层面上,这是甲骨文的延期,可以安全地删除。 如果你倾向于,你可以使用下面的代码:
SELECT DATABASE();
也就是说,重要的是要注意,虽然FROM DUAL
实际上并没有做任何事情,但它是有效的MySQL语法。 从严格的angular度来看,包括括号在内的单行条件在JavaScript中也没有做任何事情 ,但这仍然是一个有效的做法。
SELECT DATABASE();
ps我不想自由修改@cwallenpoole的答案,以反映这是一个MySQL问题,而不是Oracle问题,不需要DUAL
。
您始终可以使用STATUS命令来了解当前数据库和当前用户
在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); } ?>
@mysql_result(mysql_query("SELECT DATABASE();"),0)
如果没有select数据库,或者没有连接,则返回NULL
否则返回所选数据库的名称。
SELECT DATABASE()
在PHPMyAdmin中工作。