Boa tarde pessoal!
Estou postando aqui uma classe bem básica que fiz para agilizar bastante nas quatro funções básicas de banco de dados: Criar, Recuperar, Atualizar e Deletar. Em outras palavras seria a execução dos seguintes comandos SQL respectivamente: INSERT, SELECT, UPDATE e DELETE.
Na maioria dos caso nem vai ser necessário você digitar uma Query SQL, pois você pode fazer quase tudo diretamente pela classe. Para utilizar a classe, você deve primeiro abrir uma conexão Mysql da maneira mais comum no PHP:
$conn = mysql_connect('localhost', 'usuario', 'senha'); $db = mysql_select_db('banco');
Agora, digamos que você quer “abrir” todos os registros existentes na tabela “pessoas” do seu banco e mostrar os campos “nome” e “email” de cada pessoa. Primeiro você deve incluir a classe simpleCRUD e depois criar a classe “Pessoas” que irá extendê-la, informando o nome da tabela. Então você executa a função abstrata “find_all”, que irá retornar uma Array de objetos “Pessoas” ou uma Array vazia caso não exista nenhum registro na tabela.
require("simplecrud.class.php"); class Pessoas extends simpleCRUD { protected $__table = "pessoas"; } $pessoas = Pessoas::find_all(); foreach ($pessoas as $pessoa) { echo "Nome: {$pessoa->nome} - Email: {$pessoa->email}<br />"; }
Você também pode procurar registros por ID ou por SQL caso você queira ser mais específico.
$pessoa = Pessoas::find_by_id(20); // Irá retornar um único objeto "Pessoas" print_r($pessoa->toArray()); // toArray() retorna todos os campos em uma array $menores = Pessoas::find_by_sql("SELECT * FROM pessoas WHERE idade < 18"); foreach ($menores as $menor) { echo "Nome: {$menor->nome} - Idade: {$menor->idade}<br />"; }
Para inserir novos registros você deve criar uma nova instância da classe, preencher os campos necessários e executar a função “insert”:
$pessoa = new Pessoas(); $pessoa->nome = "Fredi Machado"; $pessoa->site = "http://fredimachado.com.br"; $pessoa->insert(); echo $pessoa->id; // Depois do insert o id inserido já está no objeto automaticamente
Para deletar um registro você pode abrí-lo e depois executar a função “delete” (Claro que na maioria dos casos é bem mais fácil executar direto uma Query SQL para deletar um ou mais registros):
$pessoa = Pessoas::find_by_id(1); if ($pessoa) // Só pra ter certeza, pois a função vai retornar false caso o registro não exista $pessoa->delete();
Para atualizar um registro é bem fácil. Você precisa abrir, alterar os campos necessários e executar a função “update”:
$pessoa = Pessoas::find_by_id(2); if ($pessoa) { $pessoa->nome = "Novo nome"; $pessoa->update(); }
Baixe a classe com exemplos:
|
|
download: simplecrud-0.1-20090825.zip (3.95KB) added: 25/08/2009 clicks: 948 description: Classe simpleCRUD Versão 0.1 |
Com certeza pode ajudar muita gente que ainda não utiliza nenhum Framework PHP. Postei esta classe no Github também, para ter mais controle sobre as mudanças no desenvolvimento. Quem quiser conferir é só acessar este link: http://github.com/fredi/simpleCRUD/tree/master
Abraço e até o próximo post.

E ai Fred, achei muito 10 essa classe de CRUD.. Muito simples e funciona legal, só estou tendo um problema com a função update, que não atualiza o registro de jeito algum, e também não retorna nenhum erro, será que é erro meu ou é um bug? Até mais…
16/10/2009 @ 9:22 am
Descobri, o que acontece, é que as vezes no metodo update, quando ele vai dar o retorno da função baseado no metodo mysql_affected_rows, é importante lembrar que se os campos enviados estiverem iguais ao conteudo do banco, ele irá retornar que não alterou nenhuma linha. E ai a função update retorna false.
16/10/2009 @ 10:26 am
Uma sugestão amigo.
Junte esta classe ao MultiUpload que vai ficar show.
13/08/2010 @ 2:02 am
Entendo que é uma classe simples mas, os métodos poderiam ficar mais práticos usando arrays, assimm como é utilizado em MVCs conhecidos.
Pessoas::find( array( ‘conditions’ => array( ‘idade > 18′ ), ‘limit’ => array( 10 ) );
De qualquer forma já ficou muito pratico para projetos pequenos.
Falopa!
21/10/2010 @ 9:57 am