CRUD Minimalista em PHP

Entendendo o CRUD

CRUD é um acrônimo para Create, Read, Update, Delete. São as quatro operações básicas de manipulação de dados em um banco de dados. Em um CRUD, o usuário pode:

  • Criar novos registros
  • Ler os registros existentes
  • Atualizar registros existentes
  • Excluir registros

Estrutura Básica

Para criar um CRUD minimalista em PHP, precisaremos de:

  • Um banco de dados: MySQL será usado neste exemplo.
  • Um arquivo PHP: Contém o código para interagir com o banco de dados e renderizar a interface do usuário.
  • Uma tabela no banco de dados: Para armazenar os dados.

Exemplo Prático: CRUD de Usuários

CREATE TABLE usuarios (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(100),
    email VARCHAR(100)
);

Criar o Arquivo PHP

<?php

// Conectar ao banco de dados
$servername = "seu_servername";
$username = "seu_username";
$password = "sua_password";
$dbname = "seu_dbname";

$conn = new mysqli($servername, $username, $password, $dbname);

// Função para inserir um novo usuário
function inserirUsuario($nome, $email) {
    global $conn;
    $sql = "INSERT INTO usuarios (nome, email) VALUES (?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ss", $nome, $email);
    $stmt->execute();
}

// Função para listar todos os usuários
function listarUsuarios() {
    global $conn;
    $sql = "SELECT * FROM usuarios";
    $result = $conn->query($sql);
    return $result;
}

// Função para atualizar um usuário
function atualizarUsuario($id, $nome, $email) {
    global $conn;
    $sql = "UPDATE usuarios SET nome=?, email=? WHERE id=?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ssi", $nome, $email, $id);
    $stmt->execute();
}

// Função para excluir um usuário
function excluirUsuario($id) {
    global $conn;
    $sql = "DELETE FROM usuarios WHERE id=?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("i", $id);
    $stmt->execute();
}

// Exemplo de uso das funções
inserirUsuario("João da Silva", "joao@email.com");
$resultado = listarUsuarios();
while($row = $resultado->fetch_assoc()) {
    echo "ID: " . $row["id"] . " - Nome: " . $row["nome"] . " - Email: " . $row["email"] . "<br>";
}

atualizarUsuario(1, "João Silva Atualizado", "joao@email.com");
excluirUsuario(2);

Explicação:

  • Conexão com o banco de dados: Estabelece a conexão com o banco de dados MySQL.
  • Funções CRUD: Cada função realiza uma operação CRUD específica, utilizando prepared statements para evitar SQL injection.
  • Exemplo de uso: Demonstra como utilizar as funções para inserir, listar, atualizar e excluir usuários.

Observações:

  • Minimalismo: Este exemplo foca nas operações básicas do CRUD, sem incluir validação de dados, tratamento de erros, ou interface gráfica.
  • Segurança: O uso de prepared statements é essencial para prevenir SQL injection.
  • Extensibilidade: Este código pode ser facilmente expandido para incluir mais funcionalidades e personalizações.

Próximos Passos:

  • Interface do Usuário: Utilize HTML e CSS para criar uma interface simples para interagir com o CRUD.
  • Validação de Dados: Implemente validação para garantir que os dados inseridos sejam válidos.
  • Tratamento de Erros: Adicione tratamento de erros para lidar com situações inesperadas.
  • Framework: Considere utilizar um framework PHP como Laravel ou Symfony para agilizar o desenvolvimento e adicionar mais funcionalidades.

Recursos Adicionais:

  • PDO: Uma alternativa à extensão MySQLi para interagir com bancos de dados.
  • HTML: Para criar a interface do usuário.
  • CSS: Para estilizar a interface do usuário.
  • JavaScript: Para adicionar interatividade à interface do usuário.

Lembre-se que este é apenas um exemplo básico. A complexidade do seu CRUD dependerá das suas necessidades específicas.

Gostaria de adicionar alguma funcionalidade específica ao seu CRUD?

Por exemplo:

  • Busca: Implementar uma função para buscar usuários por nome ou email.
  • Paginação: Dividir os resultados da lista de usuários em páginas para melhorar a performance.
  • Upload de Arquivos: Permitir que os usuários façam upload de arquivos.