CRUD com PHP e MySQL
Olá! 😎
CRUD
é um exemplo de aplicação com foco apenas nas operações básicas (Create, Read, Update, Delete) realizadas sobre uma base de dados.
Foram utilizadas na aplicação, as seguintes tecnologias para desenvolvimento web: PHP 8.1.2, MySql Server, Apache 2.4 (old but gold) e Bootstrap 5.3.0. A aplicação roda em VPS LINUX (Ubuntu 22.04.4 LTS).
O IDE utilizado foi o PhpStorm (pode ser o VSCode, Notepad++, Sublime Text, Gedit, etc).
O versionador de código escolhido foi o Git Hub.
- C: Create – Cria um registro
- R: Read – Lê um registro, ou uma lista de registros.
- U: Update – Atualiza um registro.
- D: Delete – Exclui um registro.
- Ubuntu ✔️
- VSCode ✔️
- Git Hub ✔️
- PHP ✔️
- HTML5 ✔️
- CSS3 ✔️
- MySQL ✔️
- Bootstrap ✔️
- javasript ✔️
- JQuery ✔️
- Markdown ✔️
- PhpStorm ✔
Instalação do XAMPP
Dev iniciante deve saber que servidor web rodando em localhost era instalando dessa maneira na década passada.
Brincadeiras à parte, fato é que essas stacks (WAMP, LAMP, XAMPP) são ainda muito utilizadas nos dias atuais.
Se você leitor é desenvolvedor web e desenvolve particularmente com PHP e MySQL, deve em algum momento do seu aprendizado ter lançado mão de pelo menos uma dessas ferramentas (refiro-me aqui às soluções empacotadas), porque é possível e até recomendado que você faça a instalação do seu servidor web, instalando e configurando Apache, Mysql/MySQL Server/MariaDB e PHP separadamente, por questões de realmente saber o que está se passando no submundo da sua máquina.
Essa é apenas uma das mil e uma maneiras de se ter instalado um servidor web local. Atualmente temos soluções modernas, elegantes e simples para servidores web.
Para o projeto CRUD, utilizei um PC antigo e com escassos recursos computacionais. Por imposição de uma série de requisitos, a solução mais viável foi recorrer a uma pilha empacotada como o XAMPP. Para a instalação do pacote em ambiente UNIX, utilizei dicas valiosas de:
Startando o XAMPP 👁️
sudo /opt/lampp/lampp start
Lembre-se de que deve ter atribuído permissão 777 ao diretório htdocs.
sudo chmod 777 htdocs -R
Dentro de /opt/lampp$
(no caso do Ubuntu) execute o comando abaixo para carregar XAMPP em modo GUI.
sudo ./manager-linux-x64.run
GitHub 👁️
Instalando Git no Ubuntu
sudo apt update
sudo apt install git
Verificando a versão do Git
git --version
Configurando o Git
git config --global user.name "lucioweb"
git config --global user.email "lucio.lemos.385@ufrn.edu.br"
Listando as configurações git config --list
:
user.name=lucioweb
user.email=lucio.lemos.385@ufrn.edu.br
Clonando o projeto crud
para a pasta $ /var/www
, raiz do servidor.
luciolemos@dev:/var/www $ sudo git clone https://github.com/lucioweb/crud.git
É possível criar a pasta de destino do clone, acrescentando ao comando acima o nome da pasta crud_php
, por exemplo. Lembre-se de que /var/www
é diretório do sistema.
luciolemos@dev:/var/www $ sudo git clone https://github.com/lucioweb/crud.git crud_php
MySQL 👁️
O arquivo de conexão `db_conn.php` faz referência a um banco de dados denominado `crud`, lembre-se de criá-lo.CREATE DATABASE crud;
Script de criação da tabela tbl_user
(é como ela é referenciada no arquivo data_table.php
).
CREATE TABLE
`tbl_user` (
`id` int NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL,
`last_name` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`estado_civil` varchar(20) NOT NULL,
`cidade` varchar(50) NOT NULL,
`uf` varchar(50) NOT NULL,
`cep` varchar(50) NOT NULL,
`gender` varchar(20) NOT NULL,
`ts` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci
Script PHP de conexão da aplicação com o banco de dados.
<?php
$servername = "localhost";
$username = "luciolemos";
$password = "Dif**************************#";
$dbname = "crud";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Conexão falhou " . mysqli_connect_error());
}
Estrutura do projeto CRUD 👁️
Estrutura gerada com o comando luciolemos@dev:/var/www/crud_php$ tree
.
├── README.md
├── cadastrar.php
├── css
│ ├── footer.css
│ └── navbar.css
├── data_table.php
├── db_conn.php
├── editar.php
├── excluir.php
├── includes
│ ├── create.php
│ ├── delete.php
│ └── table.php
├── index.php
├── js
│ └── mask.js
├── pages
│ ├── about.php
│ ├── blog.php
│ ├── contact.php
│ └── gallery.php
├── script.php
├── scripy.sql
├── shareds
│ ├── footer.php
│ └── navbar.php
├── snipets.php
├── video.php
└── videoxampp.php
{
"name": "lucioweb/crud",
"description": "CRUD com PHP e MySql",
"minimum-stability": "stable",
"license": "proprietary",
"authors": [
{
"name": "Lúcio Flávio Lemos",
"email": "lucio.lemos.385@ufrn.edu.br",
"role": "developer",
"homepage": "https://luciolemos.com.br/"
}
],
"config": {
"vendor-dir": "vendor"
},
"autoload": {
"psr-4": {
"source\\": "source/"
},
"files": [
"source/config.php"
]
},
"require": {
"dompdf/dompdf": "3.0.0"
}
}