DbPHP

DbPHP

v1.0.0

Laboratório Interativo & Telemetria em Tempo Real (SQLite In-Memory)

Tempo de Execução
0.013 ms
0.000013 s
Registros Retornados
3
$result->count
Driver Ativo
SQLite PDO
:memory: (Zero overhead)
Memória da Query
1.77 KB
Peak isolado da query
AUTO-ROLLBACK

Transação Atômica: Falha e Rollback

Simula uma exceção no meio de uma transação. O DbPHP intercepta o erro, reverte todas as mudanças (Rollback) e mantém a consistência.

id_contatitularsaldoestado_transacaomotivo_reversao
1Empresa Matriz LtdaR$ 10.000,00Revertido com Sucesso (Rollback)Erro intencional: Simulação de falha de conexão na transferência!
2Filial Sul PeçasR$ 2.500,00Revertido com Sucesso (Rollback)Erro intencional: Simulação de falha de conexão na transferência!
3Fundo de ReservaR$ 5.000,00Revertido com Sucesso (Rollback)Erro intencional: Simulação de falha de conexão na transferência!
PHP 8.2+ · Prepared Statements & Facade DB
try {
    DB::transaction(function ($driver) {
        // Passo 1: Debita R$ 2.000 da Matriz
        $driver->execute("UPDATE contas SET saldo = saldo - ? WHERE id_conta = ?", [2000.00, 1]);

        // Passo 2: Simula erro crítico ou validação de negócio que falha
        throw new \RuntimeException("Falha de comunicação com o Gateway de Pagamentos!");

        // Passo 3: Nunca será executado
        $driver->execute("UPDATE contas SET saldo = saldo + ? WHERE id_conta = ?", [2000.00, 2]);
    });
} catch (\Throwable $e) {
    // Transação revertida com segurança via $pdo->rollBack()!
}

// Saldos permanecem intactos:
$contas = DB::query("SELECT * FROM contas");
Formato JSON do resultado ($result->rows)
[
    {
        "id_conta": 1,
        "titular": "Empresa Matriz Ltda",
        "saldo": 10000,
        "estado_transacao": "Revertido com Sucesso (Rollback)",
        "motivo_reversao": "Erro intencional: Simulação de falha de conexão na transferência!"
    },
    {
        "id_conta": 2,
        "titular": "Filial Sul Peças",
        "saldo": 2500,
        "estado_transacao": "Revertido com Sucesso (Rollback)",
        "motivo_reversao": "Erro intencional: Simulação de falha de conexão na transferência!"
    },
    {
        "id_conta": 3,
        "titular": "Fundo de Reserva",
        "saldo": 5000,
        "estado_transacao": "Revertido com Sucesso (Rollback)",
        "motivo_reversao": "Erro intencional: Simulação de falha de conexão na transferência!"
    }
]
clientes
  • id_cliente (INTEGER PK)
  • nome_cliente (TEXT)
  • uf (TEXT)
  • cidade (TEXT)
  • vip (INTEGER 0|1)
  • saldo_credito (REAL)
produtos
  • id_produto (INTEGER PK)
  • id_categoria (INTEGER FK)
  • nome_produto (TEXT)
  • preco (REAL)
  • estoque (INTEGER)
pedidos & itens
  • pedidos.id_pedido (INTEGER PK)
  • pedidos.id_cliente (INTEGER FK)
  • pedidos.status (TEXT)
  • itens_pedido.id_item (INTEGER PK)
  • itens_pedido.qtd (INTEGER)
  • itens_pedido.preco_unitario (REAL)