2016-10-08 13 views
0

글쎄, 이제 약 2 시간 동안 다음을 시도하고 있습니다. 제대로 작동하지 않습니다. 다음 코드는 항상 "0"을 반환합니다. 제발, 누구든지 문제가 어디 있는지 알 수 있습니다. 이것은 매력으로 작동합니다. PhpMyAdmin에서 문을 실행하면 제대로 작동합니다.PHP PDO Data_length는 항상 "0"을 반환합니다.

사실, 이것은 실제 답변으로 받아 들여진 SO에 대한 다른 질문의 복사/붙여 넣기 코드입니다. 그것을 확인하십시오 here.

편집 : 오류가 사용하여 발생하지 않습니다 : 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"을 반환합니다.