[PHP] Vérifier l'existance d'une db

Vérifier l'existance d'une db [PHP] - PHP - Programmation

Marsh Posté le 27-05-2003 à 22:30:08    

Salut, j'aimerais savoir s'il est possible de vérifier l'existence d'une base de données mySql avant de m'y connecter. Merci


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 27-05-2003 à 22:30:08   

Reply

Marsh Posté le 27-05-2003 à 22:32:04    

Reply

Marsh Posté le 27-05-2003 à 22:35:34    

Si tu n'es pas connecté au serveur, qui veux tu qui te dises si une base existe ou non ? Ton appareil photo ? [:psychokwak]

Reply

Marsh Posté le 27-05-2003 à 22:36:19    


Nope, une connexion doit obligatoirement avoir été établie avant de pouvoir utiliser mysql_db_name() :)

Reply

Marsh Posté le 27-05-2003 à 22:37:00    

j'ai trouvé ceci
 
<?php  
error_reporting(E_ALL);
 
mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs();
 
$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>
 
je test


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 27-05-2003 à 22:38:22    

Core 666 a écrit :

Si tu n'es pas connecté au serveur, qui veux tu qui te dises si une base existe ou non ? Ton appareil photo ? [:psychokwak]


 
je voulais dire avant de selectionner une db avec mysql_select_db


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 27-05-2003 à 22:41:38    

Core 666 a écrit :

Nope, une connexion doit obligatoirement avoir été établie avant de pouvoir utiliser mysql_db_name() :)


Mouais effectivement j'avais un doute à ce sujet ;) Enfin ça peut quand même lui convenir s'il a déjà une connexion active :o


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 27-05-2003 à 22:42:33    

gm_superstar a écrit :


Mouais effectivement j'avais un doute à ce sujet ;) Enfin ça peut quand même lui convenir s'il a déjà une connexion active :o


 
avec le ptit script que jai écrit quelques poste plus haut, ca m'affiche la liste des db dispo
 
merci


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 27-05-2003 à 22:44:51    

burgergold a écrit :

avec le ptit script que jai écrit quelques poste plus haut, ca m'affiche la liste des db dispo
 
merci


Oui enfin ton script il vient du manuel PHP consacré à mysql_db_name ;)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 27-05-2003 à 22:52:15    

burgergold a écrit :


je voulais dire avant de selectionner une db avec mysql_select_db


Je vois pas ce qui te gène la dedans ? Vérifiez l'existance d'une base avec mysql_select_db est de loin le moyen le plus propre de le faire ...
 
Sinon, il existe une fonction similaire à mysql_connect qui permet de spécifier la base en argument et qui retourne FALSE si la connexion ne peut pas se faire et/ou si la base n'existe pas. Elle est dépréciée (le couple mysql_connect / mysql_select_db est à préférer) mais elle pourrait te servir.
 
Edit : en fait mes souvenirs étaient éronnés, je pensais à mysql_db_query mais ca permet de faire une requete en spécifiant la base, et pas à se connecter en spéficiant la base.


Message édité par Core 666 le 27-05-2003 à 23:12:49
Reply

Marsh Posté le 27-05-2003 à 22:52:15   

Reply

Marsh Posté le 28-05-2003 à 00:46:53    

c parce que dans mon cas, c une "simili installation" que je code
 
si la bd existe pas, je la crée et j'vais y ajouter les tables et champs par défaut
 
mais probleme, on dirait que mon $found ne fonctionne pas correctement, il demeure à 0 alors que la db existe, et si je change la ligne 12 par

Code :
  1. while ($i < $cnt || $found = 0)

bin ca fonctionne pas dans l'autre cas
 

Code :
  1. <?php
  2. $db_config_name = "oswi_config";
  3. $db = mysql_connect('localhost', 'root', '');
  4. mysql_drop_db($db_config_name);
  5. $db_list = mysql_list_dbs();
  6. $i = 0;
  7. $cnt = mysql_num_rows($db_list);
  8. $found = 0;
  9. while ($i < $cnt || $found = 0)
  10. {
  11. echo mysql_db_name($db_list, $i);
  12. echo "<br>";
  13. if (mysql_db_name($db_list, $i) == $db_config_name)
  14. {
  15.  $found = 1;
  16. }
  17. $i++;
  18. }
  19. echo $found;
  20. if ($found != 1)
  21. {
  22. if (mysql_create_db($db_config_name))
  23. {
  24.     echo "Base de données créée";
  25.    }
  26. else
  27.    {
  28.  echo "Erreur lors de la création de la base: ".mysql_error();
  29. }
  30. }
  31. mysql_select_db($db_config_name,$db);
  32. mysql_close();
  33. ?>


Message édité par burgergold le 28-05-2003 à 00:48:21

---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 28-05-2003 à 00:51:50    

Code :
  1. while ($i < $cnt && $found = 0)


faut mettre un &&, sinon il continue tant que $i < $cnt, sans tenir compte de la valeur de $found
(il risque même de continuer après -> boucle infinie :D )

Reply

Marsh Posté le 28-05-2003 à 00:54:22    

mrBebert a écrit :

Code :
  1. while ($i < $cnt && $found = 0)


faut mettre un &&, sinon il continue tant que $i < $cnt, sans tenir compte de la valeur de $found
(il risque même de continuer après -> boucle infinie :D )


 
si je mets && il ne semble meme pas entrer dans la boucle...


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Marsh Posté le 28-05-2003 à 00:57:38    

$found == 0 :whistle:

Reply

Marsh Posté le 28-05-2003 à 01:02:25    

mrBebert a écrit :

$found == 0 :whistle:  


 
 :jap:  
 
1er soirée en php :D
 
en ce moment jfais du javascript, du perl, plein dautre truc et à force de travailler avec divers language, on se mele un peu


---------------
http://www.boincstats.com/signature/user_664861.gif
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed