使用PHP检查没有记录的数据库


Check the databases with no records using PHP

如果300多个数据库不为空,我需要检查它们,并显示里面没有表的数据库的名称。

这是我的代码[EDIT]:

<?php
    $db = ['db_1', 'db_2', 'db_3', 'db_4'];
    foreach ($db as $db_name) {
        $conn = mysqli_connect("host", "user", "pass", $db_name) or die("Error " . mysqli_error($conn));
    }
    if ($conn->connect_error) {
        die("Conect error: " . $conn->connect_error);
    }
    $sql = "SHOW TABLES FROM " . $db_name . "";
    $result = mysql_query($sql);
    if ($result == NULL) {
        foreach ($db as $db_name) {
            echo "Empty database:" . $db_name . "</br>";
        }
    } else {
        exit;
    }
    ?>

但是代码返回所有数据库,

这应该适用于您:

<?php
$db = ['db_1', 'db_2', 'db_3', 'db_4'];
$conn = mysqli_connect("host", "user", "pass") or die("Error connecting: " . mysqli_error($conn));
foreach ($db as $db_name) {
    $sql = "SHOW TABLES FROM " . $db_name;
    $result = mysqli_query($conn, $sql);
    if (!$result) {
        echo "Unable to get tables from:" . $db_name . "<br />";
    } else {
        if ( mysqli_num_rows($result) === 0 )
            echo "Empty database:" . $db_name . "</br>";
        }
    }
mysqli_close($conn);
?>

旁注:

如果您的PHP版本不支持方括号表示数组,请尝试更改:

$db = ['db_1', 'db_2', 'db_3', 'db_4'];

$db = array('db_1', 'db_2', 'db_3', 'db_4');