$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        // executa consulta SQL
        $result = $conn->query($sql);
        $data = $result->fetch(PDO::FETCH_ASSOC);
        unset($conn);
        return $data;
    }
}
class Produto
{
    public $id;
    public $descricao;
    public $estoque;
    public $preco_custo;
}
// instancia objeto ProdutoGateway
$gateway = new ProdutoGateway();
$vinho = new Produto();
$vinho->id = 4;
$vinho->descricao = 'Vinho';
$vinho->estoque = 10;
$vinho->preco_custo = 15;
// insere o objeto no banco de dados
$gateway->insert($vinho);
// exibe o objeto de código 4
print_r($gateway->getObject(4));
$vinho->descricao = 'Vinho Cabernet';
// atualiza o objeto no banco de dados
$gateway->update($vinho);
// exibe o objeto de código 4
print_r($gateway->getObject(4));
        echo $sql . "<br>\n";
        // instancia objeto PDO
        $conn = new PDO('sqlite:produtos.db');
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        // executa consulta SQL
        $result = $conn->query($sql);
        $this->data = $result->fetch(PDO::FETCH_ASSOC);
        unset($conn);
    }
}
// insere produtos na base de dados
$vinho = new ProdutoGateway();
$vinho->id = 5;
$vinho->descricao = 'Vinho Cabernet';
$vinho->estoque = 10;
$vinho->preco_custo = 10;
$vinho->insert();
$salame = new ProdutoGateway();
$salame->id = 6;
$salame->descricao = 'Salame';
$salame->estoque = 20;
$salame->preco_custo = 20;
$salame->insert();
// recupera um objeto e realiza alteração
$objeto = new ProdutoGateway();
$objeto->getObject(6);
$objeto->estoque = $objeto->estoque * 2;
$objeto->descricao = 'Salaminho Italiano';
$objeto->update();
// exclui o produto vinho da tabela
$vinho->delete();