Heim >Datenbank >MySQL-Tutorial >CRUD PHP und MySQL und API und wichtige Grundlagen

CRUD PHP und MySQL und API und wichtige Grundlagen

Barbara Streisand
Barbara StreisandOriginal
2024-12-31 13:23:10868Durchsuche

CRUD PHP e MySQL e API e Fundamentos importantes

So erstellen Sie ein CRUD (Create, Read, Update, Delete) in PHP mit MySQL.

In diesem Beispiel wird die Erweiterung MySQLi zum Ausführen von Datenbankoperationen verwendet.

Schritt 1: Erstellen der Datenbank und Tabelle

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
);

Schritt 2: Verbindung zur Datenbank

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);
}
?>

Schritt 3: Startseite

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>

Schritt 4: Benutzer erstellen

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);
        }
    }
}
?>

Schritt 2: Kurs für Bankgeschäfte

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();
    }
}
?>

Schritt 3: Startseite

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>

Schritt 4: Benutzer erstellen

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.";
}
?>

So führen Sie das Projekt aus

  1. Lokalen Server einrichten (wie XAMPP oder LAMP).
  2. Erstellen Sie zunächst die Datenbank mit SQL.
  3. Legen Sie alle Dateien in einem Ordner im öffentlichen Verzeichnis ab.
  4. Gehen Sie in Ihrem Browser zu http://localhost/your_pasta/index.php.

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 der zu nutzenden API (Backend)

Schritt 1: Datenbankstruktur

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
);

Schritt 2: API-Backend

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();
?>

2. Erstellen der Client-to-Consume-API

API-Client

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
);

3. Testen der API

Schritt 1: Konfigurieren Sie die lokale Umgebung

  1. Richten Sie Ihren lokalen Server ein (XAMPP, LAMP oder ähnliches).
  2. Platzieren Sie die Dateien api.php und client.php im selben öffentlichen Ordner.

Schritt 2: Testen

  1. API-Backend: Gehen Sie zu http://localhost/api.php?endpoint=users, um den API-Endpunkt zu überprüfen.
  2. Client: Führen Sie die Datei client.php im Terminal oder über den Browser aus, um den Verbrauch zu testen.

Dieses Beispiel ist eine funktionale Grundlage. Für die Produktion empfiehlt sich:

  • Verwenden Sie Authentifizierungstokens (wie JWT).
  • Fügen Sie Datenvalidierung und -bereinigung hinzu.
  • Fehlermanagement und HTTP-Antworten verbessern.

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:


PHP-Grundlagen

  • Grundlegende Syntax: Kenntnisse über Variablen, Arrays, Strings, Schleifen, Funktionen und Kontrollstrukturen.
  • Eingebaute Funktionen: Manipulation von Zeichenfolgen (z. B. explodieren, implodieren, trimmen), Arrays (array_merge, array_filter) und Zahlen (rund, rand).
  • Objektorientierung (OOP): Klassen, Objekte, Vererbung, Kapselung, Polymorphismus und Schnittstellen.
  • Arbeiten mit Dateien: fopen, fwrite, file_get_contents.
  • Fehler- und Ausnahmebehandlung: Try-Catch und wie man Fehler in PHP behandelt.
  • Superglobals: $_POST, $_GET, $_SESSION, $_COOKIE und wie man sie verwendet.

2. MySQL- und PHP-Integration

  • Grundlegende Abfragen: SELECT, INSERT, UPDATE, DELETE, mit und ohne Klauseln wie WHERE, ORDER BY und LIMIT.
  • Joins: Erfahren Sie, wie Sie INNER JOIN, LEFT JOIN, RIGHT JOIN verwenden.
  • Beziehungen: Arbeiten Sie mit verwandten Tabellen (1:1, 1:N, N:N).
  • CRUD mit PDO oder MySQLi: Kenntnisse in der Ausführung von Abfragen und dem Schutz vor SQL-Injection mithilfe vorbereiteter Abfragen.
  • Indizes: Was sie sind und wie sie zur Leistung beitragen.
  • Transaktionen: Konzept und Verwendung in MySQL (START TRANSACTION, COMMIT, ROLLBACK).

3. Datenstruktur und Logik

  • Grundlegende Algorithmen: Sortieren (Bubble Sort, Quick Sort), Suche (binär, linear).
  • Datenstrukturen: Arrays, Stapel, Warteschlangen, Listen.
  • Fehlerbehebung: Erfahrung im Lösen kleiner Logikprobleme, wie sie beispielsweise bei technischen Herausforderungen auftreten (z. B. HackerRank, Codewars).

4. Gute Praktiken und Standards

  • Sauberer Code: Verwendung von beschreibenden Variablen- und Funktionsnamen, gut eingerückter Code.
  • DRY (Don't Repeat Yourself) und KISS (Keep It Simple, Stupid).
  • Grundlegende Sicherheit: Schutz vor SQL-Injection, XSS und CSRF.

5. Webentwicklung

  • Grundlegendes HTML/CSS/JavaScript: Ausreichende Kenntnisse, um mit Backends zu arbeiten, die mit Frontends interagieren.
  • Formulare: Formularverarbeitung, serverseitige Validierung.
  • RESTful APIs: So erstellen und nutzen Sie APIs und HTTP-Methoden (GET, POST, PUT, DELETE).
  • Sitzungen und Authentifizierung: Verwendung von $_SESSION und grundlegender Anmelde-/Abmeldeverwaltung.

6. Werkzeuge und Umgebung

  • Versionierung mit Git: Commit, Branch, Merge und wie man Pull Requests erstellt.
  • PHP Composer: Verstehen Sie, wie externe Abhängigkeiten verwendet werden.
  • Lokale Umgebung: Erfahrung mit WAMP, XAMPP oder Docker.
  • Debugging: Verwendung von var_dump, print_r oder Tools wie Xdebug.

7. Grundkonzepte des Software Engineering

  • Architekturmodelle: MVC (Model-View-Controller).
  • Relationale Datenbank: Normalisierung von Tabellen, Primär- und Fremdschlüsseln.
  • Versionskontrolle: Arbeiten Sie mit Git-Repositorys und verstehen Sie den Team-Workflow (z. B. Git Flow).

8. Verhaltensfragen

Nachwuchsunternehmen bewerten auch Soft Skills. Bereiten Sie sich auf Fragen wie:

vor
  • Warum haben Sie sich für PHP entschieden?
  • Wie löst man Probleme unter Druck?
  • Erzählen Sie mir von einem Projekt, das Sie bereits entwickelt haben.
  • Wie gehen Sie mit Fehlern um?

Tipps, um aufzufallen

  1. Entwerfen Sie vor dem Vorstellungsgespräch etwas Praktisches: Beispiel: ein einfaches CRUD, eine RESTful-API oder ein einfaches Anmeldesystem. Das zeigt Ihre Proaktivität.
  2. Lernen Sie das Unternehmen kennen: Verstehen Sie, was es tut, seine Technologien und sehen Sie, ob Sie Ihre Antworten auf Ihre Bedürfnisse abstimmen können.
  3. Seien Sie ehrlich: Es ist normal, nicht alles zu wissen. Zeigen Sie Ihre Lernbereitschaft und zeigen Sie, wie Sie Wissenslücken schließen.

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn