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").
Utilisez simplement mysql_query (ou mysqli_query, encore mieux, ou utilisez PDO, le meilleur de tous) avec:
SELECT DATABASE() FROM DUAL;
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.
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
.
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);
}
?>
@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.
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>\_
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
SELECT DATABASE()
a travaillé dans PHPMyAdmin.