diff options
| author | 2019-11-11 19:48:23 +0100 | |
|---|---|---|
| committer | 2019-11-11 19:48:23 +0100 | |
| commit | 6fb60d470aaa3c1e62dc1a61f786abdd6e428106 (patch) | |
| tree | 94fcfc624d980c6a59538130fed7a0e71339cdf1 /app/Models/DatabaseDAO.php | |
| parent | 6a643d180ec7e05deb4d86a4a8d128dda0360345 (diff) | |
Fix DB optimize for MySQL (#2647)
`pdo->exec()` is not appropriate for MySQL `OPTIMIZE` because `OPTIMIZE`
returns some data and not only a code and then fails.
Diffstat (limited to 'app/Models/DatabaseDAO.php')
| -rw-r--r-- | app/Models/DatabaseDAO.php | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/app/Models/DatabaseDAO.php b/app/Models/DatabaseDAO.php index 13330db23..cfb150ab1 100644 --- a/app/Models/DatabaseDAO.php +++ b/app/Models/DatabaseDAO.php @@ -156,7 +156,12 @@ class FreshRSS_DatabaseDAO extends Minz_ModelPdo { foreach ($tables as $table) { $sql = 'OPTIMIZE TABLE `_' . $table . '`'; //MySQL - $ok &= ($this->pdo->exec($sql) !== false); + $stm = $this->pdo->query($sql); + if ($stm == false || $stm->fetchAll(PDO::FETCH_ASSOC) === false) { + $ok = false; + $info = $stm == null ? $this->pdo->errorInfo() : $stm->errorInfo(); + Minz_Log::warning(__METHOD__ . ' error: ' . $sql . ' : ' . json_encode($info)); + } } return $ok; } |
