web-dev-qa-db-fra.com

MySQL: déterminer quelle base de données est sélectionnée?

Après avoir appelé mysql_select_db pour récupérer une base de données, existe-t-il un moyen de générer ultérieurement le nom de la base de données actuellement sélectionnée? Cela semble très basique mais je n'ai rien trouvé sur php.net ou stackoverflow (tous les résultats sont pour "pas de base de données sélectionnée").

188
andrewtweber

Utilisez simplement mysql_query (ou mysqli_query, encore mieux, ou utilisez PDO, le meilleur de tous) avec:

SELECT DATABASE() FROM DUAL;

Addenda:

Il y a beaucoup de discussions pour savoir si FROM DUAL devrait ou non être inclus dans ceci ou non. Sur le plan technique, il s’agit d’une solution de sauvegarde d’Oracle qui peut être supprimée en toute sécurité. Si vous êtes enclin, vous pouvez utiliser les éléments suivants à la place:

SELECT DATABASE();

Cela dit, il est peut-être important de noter que, bien que FROM DUAL ne soit en réalité do rien, il s'agit d'une syntaxe MySQL valide. D'un point de vue strict, inclure des accolades dans une seule ligne conditionnelle dans JavaScript ne signifie pas non plus do rien, mais cela reste une pratique valide.

277
cwallenpoole
SELECT DATABASE();

p.s. Je ne voulais pas me permettre de modifier la réponse de @ cwallenpoole pour refléter le fait qu'il s'agit d'une question MySQL et non d'une question Oracle et qu'elle n'a pas besoin de DUAL.

76
Elijah Lynn

Vous pouvez toujours utiliser la commande STATUS pour connaître Base de données actuelle & Utilisateur actuel

 enter image description here

36
Mogli

Dans les commentaires de http://www.php.net/manual/de/function.mysql-db-name.php J'ai trouvé celui-ci chez ericpp% bigfoot.com: 

Si vous avez juste besoin du nom de la base de données actuel, vous pouvez utiliser la commande SELECT DATABASE () de MySQL:

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

Si aucune base de données n'est sélectionnée ou s'il n'y a pas de connexion, il renvoie NULL, sinon le nom de la base de données sélectionnée.

2
user669677

légèrement hors sujet (utilisation de la CLI au lieu de PHP), mais cela vaut la peine de savoir:

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

ou une fois à l'intérieur

Prompt \d>\_
\R \d>\_
1
Jeff

Une autre façon de filtrer la base de données avec Word spécifique.

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

Exemple:

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

SELECT DATABASE() a travaillé dans PHPMyAdmin.

0
Abhi Chavda