Creer un nom de base de donnees en vérifiant qu'il n'existe pas
Bonjour,
Je tente de faire ce petit 'moteur' pour créer une BD avec un nom qui n'existe pas.
Le scénario:
- Mettre le nom des bases dans un array
- Créer un premier nom de base aleatoire
- Tester s'il existe en bouclant l'array
- S'il existe re-créer un nom aléatoire
- Relancer le test
Mais ce 'moteur' ne tourne que deux fois.
En code ca fait:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| //*** Creation du tableau des noms de databases
$array_db=array();
try { $sql = "SHOW DATABASES";$stmt = $bdd_appli->prepare($sql);$stmt->execute(array());
// Les mettre en array
while ($results=$stmt->fetch()) {
array_push($array_db,$results[0]);
}
} catch(PDOException $e) {echo 'Erreur: '.$sql . "<br>" . $e->getMessage();$erreur="$_POST deconnect<br>".$sql;}
//*** Creation du tableau des noms de databases
//*** Function random pour créer le nom de la nouvelle base
function random($car) {
$string = "";$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
for($i=0; $i<$car; $i++) {$string .= $chaine[rand()%strlen($chaine)];}return $string;}
//*** Function random pour créer le nom de la nouvelle base
// Nom de la nouvelle base
$db_name=random(5);;
//*** Function test_exist
$db_exist=0;
function test_exist($array_db,$db_name,$db_exist) {
foreach ($array_db as $key => $nom_base) {
if ($nom_base==$db_name) {
$db_exist=1;
echo '<br>En test '.$db_name.' = '.$db_exist.'<br>';
return $db_exist;
exit();
} // if
} // foreach
}
//*** Function test_exist
if (test_exist($array_db,$db_name,$db_exist)==1) {
echo $db_name.' exist<br>';
$db_exist=0;
$db_name=random(1);
echo 'test de: '.$db_name;
test_exist($array_db,$db_name,$db_exist);
}
else {
echo '<hr>Else db name= '.$db_name;
} |
Qu'en pensez-vous ?
C'est du n'importe quoi ? :oops: