PHP: zobrazení seznamu MySQL databází

Do různých rozhraní se může hodit zobrazení seznamu MySQL databází, které se na serveru vyskytují. Řešit to může např. níže uvedený PHP skript, který vygeneruje HTML tabulku s oním seznamem a pomocí bash skriptu ještě zobrazí velikost daných databází (pouze velikost adresáře ve /var/lib/mysql/nazevdatabaze, korektní způsob jak zjistit velikost databáze naleznete zde).

<?php

$sql="SHOW DATABASES;";
$link = mysqli_connect("localhost","root","heslo") or die ('Error connecting to
                        mysql: '
. mysqli_error($link).'\r\n');
$result= mysqli_query($link,$sql);
if (!mysqli_query($link, $sql)) {
    printf("Error: %s\n", mysqli_error($link));
}

while( $row_database = mysqli_fetch_row( $result ) ):
    if (($row_database[0]!="information_schema")
        && ($row_database[0]!="mysql")
        && ($row_database[0]!="performance_schema")
        && ($row_database[0]!="phpmyadmin")) {
        $exec_result = null;
        exec("sudo du -hs /var/lib/mysql/$row_database[0]/ | awk '{print $1}'",
            $exec_result);
        $exec_result_string = implode($exec_result);

        $data_db[] = array("row_database" => $row_database[0],
            "exec" => $exec_result_string);

    }
endwhile;

?>

<table class="collapse">
    <tr>
        <th>Seznam databází</th>
        <th>Velikost</th>
    </tr><?php foreach ($data_db as $row_database): ?>
       
     <tr>
        <td><?=$row_database["row_database"]?></td>
        <td><?=$row_database["exec"]?></td>
     </tr><?php endforeach; ?>
</table>

Výsledek pak může vypadat nějak takto:

Seznam databází Velikost
databaze1 14M
databaze2 12M
databaze3 3.3M
databaze4 29M
databaze5 8.0K
databaze6 8.0K

Publikováno 9.6.2015 v 12:08 | Kategorie: PHP