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();
        $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));
     * método getObjects
     * lista todos registros da tabela de produtos
     */
    function getObjects()
    {
        // cria instrução SQL de SELECT
        $sql = "SELECT * FROM produtos";
        // instancia objeto PDO
        $conn = new PDO('sqlite:produtos.db');
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        // executa a consulta SQL
        $result = $conn->query($sql);
        $data = $result->fetchAll(PDO::FETCH_ASSOC);
        unset($conn);
        return $data;
    }
}
// instancia objeto ProdutoGateway
$gateway = new ProdutoGateway();
// insere alguns registros na tabela
$gateway->insert(1, 'Vinho', 10, 10);
$gateway->insert(2, 'Salame', 20, 20);
$gateway->insert(3, 'Queijo', 30, 30);
// efetua algumas alterações
$gateway->update(1, 'Vinho', 20, 20);
$gateway->update(2, 'Salame', 40, 40);
// exclui o produto 3
$gateway->delete(3);
// exibe novamente os registros
echo "Lista de Produtos<br>\n";
print_r($gateway->getObjects());