A busca do PDO retorna apenas a primeira linha [duplicada]

Esta pergunta é uma duplicata exata de:

O DOP do PHP Data_length sempre retorna "0" 1 resposta

ATUALIZAÇÃO 2: Pedi gentilmente para desmarcar essa pergunta como duplicada, pois não é uma duplicata da outra, que após algumas pesquisas descobri o problema e forneci uma resposta eficaz, que a pessoa que marcou minha pergunta como duplicada não forneceu declarando que o código funcionou para ele. Bem, está funcionando para ele, mas não está funcionando para mim. Também li muitas perguntas em que, quando alguém testa o código e funciona para ele, ele apenas coloca uma nota nos comentários como este "Funciona para mim", ou algo semelhante. E em vez de marcar minha pergunta e depois postar o seguinte comentário:

"o que você deveria ter feito foi editar sua outra pergunta, em vez de publicar com o mesmo código. Desculpe, mas não vou reabrir a pergunta. Fiz alguns comentários ontem na sua outra pergunta, mas não me incomodei em responder e acabei excluindo-os. Afirmando que não havia nada errado com o seu código desde que eu o testei."

.. talvez o que ele deva fazer seja apenas um conselho nos comentários e, provavelmente, eu poderia ter editado ambas as minhas perguntas, em vez de ter que "argumentar" e reclamar apenas porque quero excluir minha pergunta, que agora é impossível, e se Se eu postar outra pergunta, obviamente ela também será marcada como duplicada. Isso é muito lamentável. Também não vejo isso -A busca do PDO retorna apenas a primeira linha como uma duplicata desteO DOP do PHP Data_length sempre retorna "0"

PERGUNTA ORIGINAL: Estou usando o código a seguir para fazer uma conexão com o banco de dados, buscar oData_length coluna de índice e calcule o tamanho do banco de dados com base nos dados.

Por alguma razão, a DOP sempre retornará "0", que é o valor para oData_length índice na primeira linha. Tudo o que faço, recebo apenas o primeiro índice de linhas.

O banco de dados é MySQL, o mecanismo MyISAM.

Versão do PHP: 5.5.38
Versão do MySQL: 5.5.50

ATUALIZAÇÃO 1: Bem, como esta pergunta foi marcada como duplicada deesta primeiro, fui forçado a mudar o código fonte. A seguir, está o novo código-fonte que está funcionando bem em uma hospedagem, mas ainda retorna apenas a primeira linha na outra.

// START GET DATABASE SIZE
    // Connect to database
    $conn = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);

    // Execute query
    $stmt = $conn->query('SHOW TABLE STATUS');

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

    // Set values to variables for use
    $decimals = 4;
    $mbytes = round($size/(1024*1024),$decimals);
    $kilobytes = round(($size / 1024) * 10);
    echo $kilobytes;
    // END GET DATABASE SIZE

O código fonte antigo: Copiei este código deesta resposta como foi aceito como funcionando. Não pude comentar lá porque não tenho reputação suficiente.

<!DOCTYPE html>
<head>
<title></title>
</head>
<body>

<?php
try {
    error_reporting(-1);
    $host_name  = "my_host";
    $database   = "my_db";
    $user_name  = "my_user";
    $password   = "my_pwd";
    $conn = new PDO("mysql:host=$host_name;dbname=$database", $user_name, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sth = $conn->query('SHOW TABLE STATUS');
    $dbSize = 0;
    $row = $sth->fetch(PDO::FETCH_ASSOC);
    $dbSize = $row["Data_length"];
    $decimals = 2;  
    $mbytes = round($dbSize/(1024*1024),$decimals);
    echo $dbSize . "\n" . $row["Data_length"];
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}
?>
</body>
</html>

questionAnswers(1)

yourAnswerToTheQuestion