如何使用php删除空的数据表

今天有个需求,需要删除空的数据表,就是数据库中的表,如果没有内容就删除掉,不说废话,直接上代码。

数据无价,谨慎删除

不管怎么删除数据的时候,要小心一点。先要备份一下数据库,省的出问题。

$host = ""; # 主机
$users = ""; # 用户名
$passwd = ""; # 密码
$dbname = ""; # 数据库名字

# 屏蔽错误
$mysqli = @new mysqli($host, $users, $passwd, $dbname);

if($mysqli->connect_errno) {
    printf("数据库连接失败: %s \n", $mysqli->connect_error);
    # shell 返回 255
    exit(-1);
}

if ($result = $mysqli->query("SHOW TABLES")) {
    while($obj = $result->fetch_row()) {
        $table = $obj[0] ?? null;
        if($table  &&  $res = $mysqli->query("select count(*) from $table")) {
            $n = $res->fetch_row();
            $n = (int)$n[0] ?? null;

            if($n === 0 && $mysqli->query("drop table if exists $table")) {
                printf("删除了空的数据表 %s \n", $table);
            }
        }
    }
}