Dieser Codeschnipsel zeigt ein funktionsfähiges CRUD-System (Create, Read, Update, Delete) mit Datenbankanbindung.
<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=testdb;charset=utf8", "root", "");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Verbindung fehlgeschlagen: " . $e->getMessage());
}
if (isset($_POST['create'])) {
$stmt = $pdo->prepare("INSERT INTO users (name) VALUES (:name)");
$stmt->execute([':name' => $_POST['name']]);
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
if (isset($_POST['update'])) {
$stmt = $pdo->prepare("UPDATE users SET name = :name WHERE id = :id");
$stmt->execute([
':name' => $_POST['name'],
':id' => (int)$_POST['id']
]);
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
if (isset($_GET['delete'])) {
$stmt = $pdo->prepare("DELETE FROM users WHERE id = :id");
$stmt->execute([':id' => (int)$_GET['delete']]);
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
$stmt = $pdo->query("SELECT * FROM users ORDER BY id ASC");
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PDO CRUD in einer Datei</title>
</head>
<body>
<h2>Dreamcodes CRUD Codeschnipsel</h2>
<form method="post">
<input type="text" name="name" placeholder="Name eingeben" required>
<button type="submit" name="create">Hinzufügen</button>
</form>
<hr>
<table border="1" cellpadding="8" cellspacing="0">
<tr>
<th>ID</th>
<th>Name</th>
<th>Aktionen</th>
</tr>
<?php foreach ($users as $row): ?>
<tr>
<td><?= $row['id'] ?></td>
<td><?= htmlspecialchars($row['name']) ?></td>
<td>
<!-- Update Formular -->
<form method="post" style="display:inline;">
<input type="hidden" name="id" value="<?= $row['id'] ?>">
<input type="text" name="name" value="<?= htmlspecialchars($row['name']) ?>">
<button type="submit" name="update">Ändern</button>
</form>
<a href="?delete=<?= $row['id'] ?>" onclick="return confirm('Wirklich löschen?')">Löschen</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>