getColumns($table); } catch (\Exception $ex) { $existingColumns = []; } $changes = array(); foreach ($columns as $columnName => $columnType) { if (in_array($columnName, $existingColumns)) { continue; } $part = sprintf("ADD COLUMN `%s` %s", $columnName, $columnType); if (!empty($placeColumnAfter)) { $part .= sprintf(' AFTER `%s`', $placeColumnAfter); $placeColumnAfter = $columnName; } $changes[] = $part; } $sql = sprintf("ALTER TABLE `%s` %s", $table, implode(', ', $changes)); parent::__construct($sql, static::ERROR_CODE_DUPLICATE_COLUMN); } }