mantıken bu şekilde olabilir. testdb1 den testdb10 'a kadar oluşturacaktır.

edit: diğer fonksiyonları da ekledim.

create_db: db'yi oluşturur
remove_db: db'yi siler
flush_db: db içindeki tabloları siler

<?php
function create_db($server,$user,$pass,$db){
$link = mysqli_connect($server, $user, $pass);
if (!$link) {
    die('Hata: bağlanılamadı.');
}
$db_selected = mysqli_select_db($link, $db);
if (!$db_selected) {
  $sql = 'CREATE DATABASE '.$db.' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;';

  if (mysqli_query($link, $sql)) {
      echo "".$db." adlı veritabanı oluşturuldu.<br>";
  } else {
      echo 'Hata: ' . mysqli_error($link) . "\n";
  }
}
mysqli_close($link);
}

function remove_db($server,$user,$pass,$db){
$link = mysqli_connect($server, $user, $pass);
if (!$link) {
    die('Hata: bağlanılamadı.');
}
$db_selected = mysqli_select_db($link, $db);
if ($db_selected) {
    $sql = 'DROP DATABASE '.$db.';';
        if (mysqli_query($link, $sql)) {
          echo "".$db." adlı veritabanı silindi.<br>";
        } else {
          echo 'Hata: ' . mysqli_error($link) . "\n";
        }
}else {
  echo 'Hata: ' . mysqli_error($link) . "\n";
}
}

function flush_db($server,$user,$pass,$db){
$mysqli = new mysqli($server, $user, $pass, $db);
$mysqli->query('SET foreign_key_checks = 0');
if ($result = $mysqli->query("SHOW TABLES"))
{
    while($row = $result->fetch_array(MYSQLI_NUM))
    {
        $remove = $mysqli->query('DROP TABLE IF EXISTS '.$row[0]);
        if ($remove) {
          echo "".$row[0]." adlı tablo silindi.<br>";
        }
    }
}
$mysqli->query('SET foreign_key_checks = 1');
$mysqli->close();
}

//flush_db('localhost','root','','testdb1');

$limit = 10;

for ( $i = 1; $i <= $limit; $i++ ){
    //create_db('localhost','root','','testdb'.$i.'');
    //remove_db('localhost','root','','testdb'.$i.'');
}
?>