sábado, 14 de novembro de 2009

Como realizar Update utilizando Pear DB_DataObject

Olá pessoal, neste POST estaremos tratando de um assunto interessante relativo ao Pear, que é um framework para reutilização de componentes PHP.

Para quem ainda não utiliza, pode fazer download no site: pear.php.net. Baixe o package DB_DataObject que é focado em banco de dados.

A documentação relativa à este package está no endereço: DB_DataObject Manual

Infelizmente a documentação na maioria dos casos é inglês tendo pouca coisa em português.

Vamos lá!

Inicalmente você deve definir qual é o banco de dados e a tabela onde será realizado o update. Tomamos como exemplo fictício o banco "Empresa" tabela "CLIENTE". Iremos alterar o campo "nome" do usuário para o usuário "Dilberto Gabriel Rosa". Porém realizaremos update onde a chave "pkUsuario" é 737.

Os passos são os seguintes:

1) Instanciar a Model da sua tabela
$daoCliente = new DO_CLIENTE();

2) Setar o "where" para realizar o UPDATE

Aqui está o segredo em realizar update utilizando o pacote DB_DataObject do Pear. Ao realizar Update, ele não se utiliza do método whereAdd. Temos que utilizar o método "get" passando o conteúdo da PK (Primary Key) da tabela. Desta forma o sistema vai realizar o update onde a PK seja igual ao valor passado no get.

Confuso? Vamos ao exemplo.

$daoCliente->get(737);

Assim, o pear entende que ele deve fazer update onde o PK seja 737!

3) Setar o campo "nome" do usuário
$daoCliente->nome = "Dilberto Gabriel Rosa";

Até este ponto estamos apenas setando o conteúdo da propriedade nome do objeto $daoCliente.

4) Realiza o Update
$daoCliente->update();

Agora sim, ele atualiza em banco, conforme o objeto;

Pronto!

Certo, mas você pode perguntar: "E se eu quiser realizar update em que vou me basear em um campo que não seja um campo chave?"

Simples, o método GET já está preparado para isso. Se você olhar a documentação vai ter o seguinte texto:

"Get a result using key, value".

Significa "Obtém um resultado usando uma chave, valor". Assim sendo, poderiamos ter utilizado o método get da seguinte forma:

$daoCliente->get("pkUsuario",737);

Simples né?

Bom, é isso pessoal. Dúvidas estarei a disposição. Conforme o interesse estarei postando outros artigos relacionados com Pear! Grande Abraço.

Dilberto Rosa

Nenhum comentário:

Postar um comentário