# Story 1.6 — Corrigir `extract()` com variáveis residuais

**Epic:** EPIC-1 PHP 8.4 Migration
**Status:** Draft
**Prioridade:** MÉDIA — causa bugs sutis, não erro fatal

## Descrição
O uso de `extract($dados, EXTR_OVERWRITE)` no `controllers.php` sobrescreve variáveis locais com dados do banco. Quando uma query anterior falha silenciosamente e deixa `$this->colunas` com valor residual, a variável `$config` é sobrescrita com lixo (string "T" do erro "Tabela..."). Já corrigido parcialmente com `$this->colunas = '*'`.

## Arquivos Afetados
- [ ] `app/controllers.php:1059,1063` — `extract()` duplo
- [ ] `app/controllers2.php:1087,1091` — mesmo padrão
- [ ] `system/mysql.php:69` — reset de `$this->colunas` só no happy path

## Critérios de Aceite
- [ ] `$this->colunas` resetado para `'*'` no catch do `read()` em `mysql.php`
- [ ] Queries críticas (config_site) precedidas de reset explícito de `$this->colunas`
- [ ] Layout do site carrega corretamente em todas as páginas
- [ ] Painel admin carrega sem erros

## Notas
- Bug já corrigido para o caso específico de `config_site` (adicionado `$this->colunas = '*'`)
- Esta story garante correção sistêmica no `mysql.php` para evitar recorrência
- O `extract()` em si não é um problema do PHP 8.4, mas a combinação com estado residual causa bugs

## File List
- `app/controllers.php`
- `app/controllers2.php`
- `system/mysql.php`
