如果数据库大小接近2gb,则更改打印输出

时间:2014-02-03 10:37:02

标签: php mysql

我有以下代码,可以很好地打印出MySQL数据库大小。我只是觉得如果数据库大小达到2GB附近就会改变字体会更好。 我在最后一次打印之上尝试了一个if语句,但后来我得到了一个空白页面。

<?php
function file_size_info($filesize) { 
    $bytes = array('KB', 'KB', 'MB', 'GB', 'TB'); # values are always displayed  
    if ($filesize < 1024) $filesize = 1; # in at least kilobytes. 
    for ($i = 0; $filesize > 1024; $i++) $filesize /= 1024; 
    $file_size_info['size'] = ceil($filesize); 
    $file_size_info['type'] = $bytes[$i]; 
    return $file_size_info; 
} 

$db_link = @mysql_connect($host, $db_user, $db_pass) 
or exit('Could not connect: ' . mysql_error()); 
$db = @mysql_select_db($db, $db_link) 
or exit('Could not select database: ' . mysql_error()); 
// Calculate DB size by adding table size + index size: 
$rows = mysql_query("SHOW TABLE STATUS"); 
$dbSize = 0; 
while ($row = mysql_fetch_array($rows)) { 
    $dbSize += $row['Data_length'] + $row['Index_length']; 
} 
//print "Database size is: $dbSize bytes<br />"; 
//print 'or<br />'; 
$dbSize = file_size_info($dbSize);
print "Database size is: {$dbSize['size']} {$dbSize['type']}"; 
?>

在这种情况下,是否有人知道如何使用<font color="red"><b><blink></blink></b></font>

1 个答案:

答案 0 :(得分:0)

在打印声明之前,你需要这样的东西:

$redAreaSize = "2048"
if ($dbSize['size'] > $redAreaSize) {
    $message = "Database size is: <font color='red'><b><blink>{$dbSize['size']} {$dbSize['type']} </blink></b></font>"
} else {
    $message = "Database size is: {$dbSize['size']} {$dbSize['type']} 
}

或者,如果每次都以不同的单位获得大小,您可以在if语句中使用下一个条件:

if (
    $dbSize['size'] > 2147483648 && $dbSize['type'] = 'B' || 
    $dbSize['size'] > 2097152 && $dbSize['type'] = 'KB' || 
    $dbSize['size'] > 2048 && $dbSize['type'] = 'MB' || 
    $dbSize['size'] > 2 && $dbSize['type'] = 'GB'
)