2016-10-08 13 views
0

まあ、私は約2時間の間、次のことを試しています。次のコードは常に "0"を返します。してください、誰が問題がどこにあるか見ることができます。これは魅力として働くはずです。 PhpMyAdminでは、文を実行すると正しく動作します。PHP PDO Data_lengthは常に "0"を返します

実際には、これは実際の答えとして受け入れられたSOの別の質問のコピー/貼り付けコードです。それをチェックしてくださいhere

EDIT: エラーが使用してスローされません: error_reporting(-1);PDO::ERRMODE_EXCEPTION

UPDATE: は間違いなく、私はData_lenghtが「0」であるクエリから最初の行のみを取得しています。私もfetchAllをテストし、フェッチ中にData_lengthインデックスにアクセスしようとしました。運がない。

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

<?php 
try { 
    error_reporting(-1); 
    $host_name = "my_hsot"; 
    $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> 

助けてください。

答えて

0

$row = $sth->fetch(PDO::FETCH_ASSOC);はクエリの最初の行のみを返し、Data_lengthのインデックスは他の値である可能性があるため、常に「0」を返します。

関連する問題