まあ、私は約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>
助けてください。