query('SHOW TABLES'); $tables = $stmt->fetchAll(\PDO::FETCH_COLUMN); // Check if tables of v0.9 are presents $diff = array_diff([Utils::table('poll'), Utils::table('slot'), Utils::table('vote'), Utils::table('comment')], $tables); return count($diff) === 0; } /** * This methode is called only one time in the migration page. * * @param \PDO $pdo The connection to database * @return bool true is the execution succeeded */ function execute(\PDO $pdo) { $pdo->beginTransaction(); $this->generateUniqIdsForEmptyOnes($pdo); $pdo->commit(); return true; } private function generateUniqIdsForEmptyOnes($pdo) { $select = $pdo->query(' SELECT `id` FROM `' . Utils::table('vote') . '` WHERE `uniqid` = \'\''); $update = $pdo->prepare(' UPDATE `' . Utils::table('vote') . '` SET `uniqid` = :uniqid WHERE `id` = :id'); while ($row = $select->fetch(\PDO::FETCH_OBJ)) { $token = Token::getToken(16); $update->execute([ 'uniqid' => $token, 'id' => $row->id ]); } } }