In diesem Beispiel wird die Erweiterung MySQLi zum Ausführen von Datenbankoperationen verwendet.
Führen Sie das folgende SQL-Skript aus, um die Datenbank und eine Tabelle namens „Benutzer“ zu erstellen:
CREATE DATABASE crud_example; USE crud_example; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE );
Erstellen Sie eine config.php-Datei, um die Datenbankverbindung zu verwalten:
<?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "crud_example"; // Conexão com o banco $conn = new mysqli($servername, $username, $password, $dbname); // Verifica conexão if ($conn->connect_error) { die("Falha na conexão: " . $conn->connect_error); } ?>
Erstellen Sie eine index.php-Datei, um Benutzer aufzulisten und Funktionen zum Erstellen, Bearbeiten und Löschen hinzuzufügen:
<?php include 'config.php'; // Leitura dos dados $sql = "SELECT * FROM users"; $result = $conn->query($sql); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CRUD em PHP</title> </head> <body> <h1>Lista de Usuários</h1> <a href="create.php">Adicionar Novo Usuário</a> <table border="1"> <tr> <th>ID</th> <th>Nome</th> <th>Email</th> <th>Ações</th> </tr> <?php while ($row = $result->fetch_assoc()) { ?> <tr> <td><?= $row['id'] ?></td> <td><?= $row['name'] ?></td> <td><?= $row['email'] ?></td> <td> <a href="edit.php?id=<?= $row['id'] ?>">Editar</a> <a href="delete.php?id=<?= $row['id'] ?>" onclick="return confirm('Tem certeza que deseja excluir?')">Excluir</a> </td> </tr> <?php } ?> </table> </body> </html>
Erstellen Sie eine Datei „create.php“, um einen neuen Benutzer hinzuzufügen:
<?php include 'config.php'; if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $email = $_POST['email']; $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; if ($conn->query($sql) === TRUE) { header("Location: index.php"); exit; } else { echo "Erro: " . $conn->error; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Criar Usuário</title> </head> <body> <h1>Adicionar Novo Usuário</h1> <form method="POST"> <label for="name">Nome:</label> <input type="text"> <hr> <h3> Passo 5: Editar Usuário </h3> <p>Crie um arquivo edit.php para editar um usuário existente:<br> </p> <pre class="brush:php;toolbar:false"><?php include 'config.php'; $id = $_GET['id']; $sql = "SELECT * FROM users WHERE id = $id"; $result = $conn->query($sql); $user = $result->fetch_assoc(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $email = $_POST['email']; $sql = "UPDATE users SET name='$name', email='$email' WHERE> <hr> <h3> Passo 6: Excluir Usuário </h3> <p>Crie um arquivo delete.php para excluir um usuário:<br> </p> <pre class="brush:php;toolbar:false"><?php include 'config.php'; $id = $_GET['id']; $sql = "DELETE FROM users WHERE> <hr> <h3> Como Rodar o Projeto </h3> <ol> <li>Configure o servidor local (como XAMPP ou LAMP).</li> <li>Coloque todos os arquivos em uma pasta dentro do diretório público (htdocs ou equivalente).</li> <li>Acesse http://localhost/sua_pasta/index.php no navegador.</li> </ol> <p>Esse é um CRUD básico e pode ser melhorado com validações, segurança (como SQL Injection), e estruturação MVC.</p> <hr> <h2> CRUD usando PHP e MySQL, estruturado de forma <strong>orientada a objetos (OOP)</strong> </h2> <p>A abordagem inclui uma classe para gerenciar as operações do banco de dados e separação lógica.</p> <hr> <h3> Passo 1: Configuração da Conexão com o Banco </h3> <p>Crie um arquivo Database.php para encapsular a conexão com o banco:<br> </p> <pre class="brush:php;toolbar:false"><?php class Database { private $host = "localhost"; private $user = "root"; private $pass = ""; private $dbname = "crud_example"; public $conn; public function __construct() { $this->conn = new mysqli($this->host, $this->user, $this->pass, $this->dbname); if ($this->conn->connect_error) { die("Erro na conexão: " . $this->conn->connect_error); } } } ?>
Erstellen Sie eine User.php-Datei, um CRUD-Vorgänge zu verwalten:
<?php include 'Database.php'; class User { private $db; public function __construct() { $this->db = (new Database())->conn; } // Create public function create($name, $email) { $stmt = $this->db->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $email); return $stmt->execute(); } // Read public function getAll() { $result = $this->db->query("SELECT * FROM users"); return $result->fetch_all(MYSQLI_ASSOC); } public function getById($id) { $stmt = $this->db->prepare("SELECT * FROM users WHERE id = ?"); $stmt->bind_param("i", $id); $stmt->execute(); return $stmt->get_result()->fetch_assoc(); } // Update public function update($id, $name, $email) { $stmt = $this->db->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?"); $stmt->bind_param("ssi", $name, $email, $id); return $stmt->execute(); } // Delete public function delete($id) { $stmt = $this->db->prepare("DELETE FROM users WHERE id = ?"); $stmt->bind_param("i", $id); return $stmt->execute(); } } ?>
Erstellen Sie eine index.php-Datei, um die Liste der Benutzer anzuzeigen und die Navigation zu verwalten:
<?php include 'User.php'; $user = new User(); $users = $user->getAll(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>CRUD OOP PHP</title> </head> <body> <h1>Lista de Usuários</h1> <a href="create.php">Adicionar Novo Usuário</a> <table border="1"> <tr> <th>ID</th> <th>Nome</th> <th>Email</th> <th>Ações</th> </tr> <?php foreach ($users as $u) { ?> <tr> <td><?= $u['id'] ?></td> <td><?= $u['name'] ?></td> <td><?= $u['email'] ?></td> <td> <a href="edit.php?id=<?= $u['id'] ?>">Editar</a> <a href="delete.php?id=<?= $u['id'] ?>" onclick="return confirm('Deseja excluir este usuário?')">Excluir</a> </td> </tr> <?php } ?> </table> </body> </html>
Erstellen Sie eine Datei „create.php“, um neue Benutzer hinzuzufügen:
<?php include 'User.php'; $user = new User(); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $email = $_POST['email']; if ($user->create($name, $email)) { header("Location: index.php"); exit; } else { echo "Erro ao criar usuário."; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Criar Usuário</title> </head> <body> <h1>Adicionar Novo Usuário</h1> <form method="POST"> <label for="name">Nome:</label> <input type="text"> <hr> <h3> Passo 5: Editar Usuário </h3> <p>Crie um arquivo edit.php para atualizar os dados do usuário:<br> </p> <pre class="brush:php;toolbar:false"><?php include 'User.php'; $user = new User(); $id = $_GET['id']; $data = $user->getById($id); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $name = $_POST['name']; $email = $_POST['email']; if ($user->update($id, $name, $email)) { header("Location: index.php"); exit; } else { echo "Erro ao atualizar usuário."; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Editar Usuário</title> </head> <body> <h1>Editar Usuário</h1> <form method="POST"> <label for="name">Nome:</label> <input type="text"> <hr> <h3> Passo 6: Excluir Usuário </h3> <p>Crie um arquivo delete.php para deletar um usuário:<br> </p> <pre class="brush:php;toolbar:false"><?php include 'User.php'; $user = new User(); $id = $_GET['id']; if ($user->delete($id)) { header("Location: index.php"); exit; } else { echo "Erro ao excluir usuário."; } ?>
Dieses Beispiel ist eine Grundlage für ein objektorientiertes CRUD und kann durch bewährte Methoden wie Eingabevalidierung, robustere Fehlerbehandlung und die Verwendung von Namespaces verbessert werden.
Hier ist ein Beispiel für die Erstellung von zwei APIs in PHP: eine Backend-API zur Nutzung und eine weitere als Client zur Nutzung der ersten API.
Erstellen Sie eine Benutzertabelle in der Datenbank:
CREATE DATABASE api_example; USE api_example; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE );
Erstellen Sie eine Datei mit dem Namen api.php, um die Endpunkte verfügbar zu machen.
<?php header("Content-Type: application/json"); include 'Database.php'; class UserAPI { private $db; public function __construct() { $this->db = (new Database())->conn; } public function handleRequest() { $method = $_SERVER['REQUEST_METHOD']; $endpoint = $_GET['endpoint'] ?? ''; switch ($endpoint) { case 'users': if ($method === 'GET') { $this->getUsers(); } elseif ($method === 'POST') { $this->createUser(); } else { $this->response(405, "Method Not Allowed"); } break; default: $this->response(404, "Endpoint Not Found"); } } private function getUsers() { $result = $this->db->query("SELECT * FROM users"); $users = $result->fetch_all(MYSQLI_ASSOC); $this->response(200, $users); } private function createUser() { $input = json_decode(file_get_contents("php://input"), true); if (empty($input['name']) || empty($input['email'])) { $this->response(400, "Missing required fields: name or email"); return; } $stmt = $this->db->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $input['name'], $input['email']); if ($stmt->execute()) { $this->response(201, "User created successfully"); } else { $this->response(500, "Internal Server Error"); } } private function response($status, $data) { http_response_code($status); echo json_encode(["status" => $status, "data" => $data]); } } $api = new UserAPI(); $api->handleRequest(); ?>
Erstellen Sie eine Datei namens client.php, um die Backend-API zu nutzen.
CREATE DATABASE crud_example; USE crud_example; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL UNIQUE );
Dieses Beispiel ist eine funktionale Grundlage. Für die Produktion empfiehlt sich:
Wenn Sie sich auf ein technisches Vorstellungsgespräch für einen Junior-Entwickler mit PHP und MySQL vorbereiten, finden Sie hier die Hauptthemen, die normalerweise behandelt werden, sowie einige Tipps:
Nachwuchsunternehmen bewerten auch Soft Skills. Bereiten Sie sich auf Fragen wie:
vorDas obige ist der detaillierte Inhalt vonCRUD PHP und MySQL und API und wichtige Grundlagen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!