Operações de inserção, atualização e apagado com SpoonDatabase

Vemos como fazer o insert, update e delete mediante a classe para abstração de base de dados que nos oferecem as bibliotecas Spoon.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 28/11/11
Valorize este artigo:
Estamos explicando como utilizar a classe SpoonDatabase para criar uma camada de abstração de base de dados com as Bibliotecas Spoon para PHP5. Em capítulos anteriores já começamos a tratar coisas básicas a cerca deste tema, e por essa razão recomendamos acessar os artigos onde se começou a analisar a classe para abstração de base de dados em PHP 5.

No presente artigo veremos as operações de inserção, atualização e apagado de registros. Observaremos que o uso da classe SpoonDatabase simplifica bastante a implementação destas operações básicas sobre base de dados.

Como lembrete, antes de poder fazer qualquer coisa com a base de dados temos que conectar com ela, para o que dispomos do construtor da classe SpoonDatabase, à que temos que enviar os parâmetros para a conexão:

//crio uma conexão com a base de dados
$db = new SpoonDatabase('mysql', 'servidor', 'usuario', 'a chave', 'base_de_dados_a_conectar');

Nota: Claro que necessitaremos ter incluído o código da classe SpoonDatabase, no arquivo das bibliotecas database.php, tal como foi explicado anteriormente.

Operação de inserção

Começaremos explicando como inserir registros na base de dados utilizando o método insert() da classe SpoonDatabase. Simplesmente temos que enviar o nome da tabela onde queremos inserir e um array associativo com os dados a inserir no registro que está sendo criado.

//Array com os dados do usuário
$dados_usuario = array("nome_completo" => "Julio Casacudo", "email" => "julio@casacudo.com", "password" => "loquesea");

//operação de inserção
$id_usuario = $db->insert('usuario', $dados_usuario);

//mostro o dado que me retorne insert()
echo "O identificador do usuario inserido é: " . $id_usuario;

Como se viu, a inserção consta de dois passos básicos. Primeiro a criação do array com os dados do registro a inserir. É um array associativo com todos os valores de todos os campos que queremos introduzir.

Nota: o campo id_usuario não foi enviado porque na tabela foi posto como autonumérico.

A seguir, fazemos a chamada ao método insert(), que recebe os mencionados parâmetros e devolve o identificador do registro inserido.

Por último, a modo de confirmação, mostramos com um echo na página o identificador do registro que foi inserido.

Operação de atualização

A operação de atualização, ou update, se realiza de maneira bastante similar à inserção, no sentido de que também necessitamos um array associativo com os dados a serem atualizados no/s registro/s.

Ademais, enviaremos ao método update(), opcionalmente dois parâmetros para definir a cláusula where, de modo que possamos especificar que registros devem ser atualizados. No momento vejamos um exemplo ainda sem cláusula where.

//atualizo registros com update
$dados_teste = array("campo" => "valor");
$filas_afetadas = $db->update('tabela_teste', $dados_teste);

O método update(), como se pode ver no código anterior, retorna o número de registros que foram atualizados por meio da consulta.

Agora vejamos como construir a parte do where na consulta de atualização, embora realmente funcione igual aos where que vimos ao explicar as consultas de seleção (select).

Uma possibilidade é escrever tal qual a parte do where no terceiro parâmetro.

$db->update('tabela_teste', $dados_teste, "id=1");

Aqui estamos indicando que se atualizem os registros com id=1. Outra possibilidade é parametrizar com variáveis a parte do where, indicando os valores em um quarto parâmetro.

$db->update('tabela_teste', $dados_teste, "nome=?", $valor_nome);

Aqui estamos indicando que se atualizem os registros com nome igual ao que haja na variável $valor_nome.

Nota: se você não se lembra bem das possibilidades de parametrização da cláusula where, recomendamos ler o artigo do getVar() e prestar atenção aos pontos: "Parametrizar um dado em uma consulta SQL" e "Parametrizar vários dados em uma consulta SQL"

Podemos ver a seguir um exemplo de atualização do nome e a chave de um dos usuários da tabela_usuario (o que tem o id_usuario=66).

//atualizo usuario
$dados_a_mudar = array("nome_completo" => "Albertito Tito", "password" => "alua");
$filas_afetadas = $db->update('usuario', $dados_a_mudar, "id_usuario=?", 66);

echo "O número de registros atualizados é: " . $filas_afetadas;

Operação de apagado

Por último falta ver a forma de fazer uma operação de apagado, ou seja, um delete de um ou vários registros de uma tabela. Para isso, utilizamos o método delete() que recebe três parâmetros, a tabela, o where e a parametrização do where.

//apago um usuario
$filas_afetadas = $db->delete('usuario', "id_usuario=?", 3);

O usuário que será apagado com o delete anterior é o que tem id_usuario=3. Ademais, como se pode ver, o método delete() retorna o número de registros que foram eliminados com tal instrução, que poderíamos mostrar a seguir na página assim:

echo "O número de registros apagados é: " . $filas_afetadas;

Conclusão

Com as instruções vistas nesta página (insert, update e delete) as que vimos para a seleção de elementos em artigos anteriores do manual de Spoon, já saberíamos como realizar as operações básicas para acesso à base de dados, no entanto, existem outros métodos que poderia ser interessante conhecer para realizar algumas operações mais avançadas.

Recordem que na documentação das bibliotecas Spoon vocês encontrarão outra serie de métodos interessantes, que nós veremos em próximos artigos.





Comentários do artigo
Foi enviado 1 comentário ao artigo
1 comentário não revisado
0 comentários revisados

Usuários :    login / registro
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato