Ну, я просто пробую следующее около двух часов и не могу заставить его работать. Следующий код всегда будет возвращать «0». Пожалуйста, кто-нибудь может увидеть, в чем проблема. Это должно работать как шарм. И в PhpMyAdmin, когда я запускаю оператор, он работает правильно.
На самом деле, это скопированный / вставленный код из другого вопроса здесь, на SO, который был принят как рабочий ответ. Проверьте это Вот.
РЕДАКТИРОВАТЬ:
Не выдается никаких ошибок при использовании:
error_reporting(-1);
а также
PDO::ERRMODE_EXCEPTION
,
ОБНОВИТЬ:
Определенно, я получаю только первую строку из запроса, где 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>
Любая помощь приветствуется.
PDO всегда возвращает «0», потому что $row = $sth->fetch(PDO::FETCH_ASSOC);
возвращает только первую строку запроса и индекс Data_length
есть «0», так как это может быть любое другое значение.
Других решений пока нет …