2013-07-28 4 views
-1

Мне было интересно, как я могу получить размер базы данных в PDO. Я использовал это раньше, но я не уверен, как преобразовать его в PDO.PHP PDO Размер базы данных

function DatabaseSize(){ 
    $Database = DB_NAZEV; 
    mysql_select_db($Database); 
    $q = mysql_query("SHOW TABLE STATUS"); 
    $size = 0; 
    while($row = mysql_fetch_array($q)) { 
     $size += $row["Data_length"] + $row["Index_length"]; 
    } 
    return $size; 
    } 

Спасибо :)

EDIT: К сожалению, это было действительно ненужный вопрос ...

мне удалось уйти с:

$Size = 0; 
    $Pdo = $this->Pdo; 
    $Query = $Pdo->prepare("SHOW TABLE STATUS"); 
    $Query->execute(); 
    $Result = $Query->fetchAll(); 
    foreach ($Result as $Row){ 
     $Size += $Row["Data_length"] + $Row["Index_length"]; 
     } 
    return $Size; 
+0

Что именно вы не уверены –

+1

, которые привели бы меня поверить, что вы не знаете, как сделать запрос в PDO. Просто найдите любой учебник/док о начале работы с PDO, и вы должны запустить этот запрос в режиме бездействия. – JimL

ответ

5

довольно прямо вперед, Оператор SHOW возвращает значения так же, как и нормальный SELECT.

// Connect to database 
$dbh = new PDO('mysql:host=localhost;dbname=test'); 

// Execute query 
$sth = $dbh->query('SHOW TABLE STATUS'); 

// Get size from array 
$size = $sth->fetch(PDO::FETCH_ASSOC)["Data_length"]; 
+0

Хммм, интересно, почему это проголосовало? – vascowhite

+0

@vascowhite Некоторые люди склонны к downvote, когда вы осмеливаетесь помогать с вопросами, которые, по их мнению, слишком прямолинейны :) Почему это сделает его «не полезным», я не уверен. –

+6

Иногда мне хотелось бы, чтобы вы прокомментировали, если вы голосуете. – JimL

Смежные вопросы