May 3, 2026 3 min read

Mwongozo Kamili wa CRUD System (Create, Read, Update, Delete) kwa PHP na MySQL – Hatua kwa Hatua)

Jifunze kwa kina jinsi ya kutengeneza CRUD system (Create, Read, Update, Delete) kwa kutumia PHP na MySQL. Mwongozo kamili wenye mifano ya vitendo, security, na best practices.

🟢 1. Utangulizi

Baada ya kuelewa jinsi ya kuunganisha PHP na MySQL, hatua inayofuata muhimu sana ni kujifunza CRUD system.

CRUD ni kifupi cha:

C → Create (kuingiza data)
R → Read (kusoma data)
U → Update (kuhariri data)
D → Delete (kufuta data)

Hizi ndio operations 4 muhimu zinazotumika karibu kwenye kila system duniani:

✔ mfumo wa shule
✔ mfumo wa accounting
✔ mfumo wa hospitali
✔ mfumo wa blog
✔ mfumo wa login/register

🔹 2. CRUD System ni Nini?

CRUD system ni mfumo unaokuwezesha:

kuongeza taarifa mpya
kuonyesha taarifa zilizopo
kubadilisha taarifa
kufuta taarifa

Mfano kwenye mfumo wa shule:

Operation Mfano
Create Kusajili mwanafunzi
Read Kuona orodha ya wanafunzi
Update Kubadilisha jina la mwanafunzi
Delete Kufuta mwanafunzi
🔹 3. Vitu Tunavyotengeneza Kwenye Blog Hii

Tutatengeneza system ya:

👉 Student Management System

Yenye uwezo wa:

✔ Add student
✔ View students
✔ Edit student
✔ Delete student

🔹 4. Kuandaa Database
📌 Tengeneza database:
CREATE DATABASE school_crud;
📌 Tengeneza table:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
student_name VARCHAR(100),
gender VARCHAR(20),
class_name VARCHAR(50),
phone VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
🔹 5. Folder Structure
crud_system/

├── db.php
├── index.php
├── add.php
├── edit.php
├── delete.php
└── view.php
🔹 6. Database Connection (db.php)
<?php
$conn = mysqli_connect("localhost", "root", "", "school_crud");

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>
🔹 7. CREATE – Kuongeza Data (add.php)
<?php
include 'db.php';

if (isset($_POST['save'])) {

$name = $_POST['name'];
$gender = $_POST['gender'];
$class = $_POST['class'];
$phone = $_POST['phone'];

$stmt = $conn->prepare("INSERT INTO students (student_name, gender, class_name, phone) VALUES (?, ?, ?, ?)");
$stmt->bind_param("ssss", $name, $gender, $class, $phone);

if ($stmt->execute()) {
echo "Student added successfully!";
} else {
echo "Error!";
}
}
?>

<form method="POST">
<input type="text" name="name" placeholder="Student Name" required><br>
<input type="text" name="gender" placeholder="Gender"><br>
<input type="text" name="class" placeholder="Class"><br>
<input type="text" name="phone" placeholder="Phone"><br>
<button name="save">Save</button>
</form>
🔹 8. Maelezo ya CREATE
$_POST inachukua data kutoka form
prepare() inalinda dhidi ya SQL Injection
bind_param() inaunganisha variables na query
execute() ina-run query
🔹 9. READ – Kuonyesha Data (view.php)
<?php
include 'db.php';

$result = mysqli_query($conn, "SELECT * FROM students ORDER BY id DESC");
?>

<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Gender</th>
<th>Class</th>
<th>Phone</th>
<th>Action</th>
</tr>

<?php while($row = mysqli_fetch_assoc($result)) { ?>
<tr>
<td><?php echo $row['id']; ?></td>
<td><?php echo htmlspecialchars($row['student_name']); ?></td>
<td><?php echo htmlspecialchars($row['gender']); ?></td>
<td><?php echo htmlspecialchars($row['class_name']); ?></td>
<td><?php echo htmlspecialchars($row['phone']); ?></td>

<td>
<a href="edit.php?id=<?php echo $row['id']; ?>">Edit</a>
<a href="delete.php?id=<?php echo $row['id']; ?>">Delete</a>
</td>
</tr>
<?php } ?>
</table>
🔹 10. Maelezo ya READ
SELECT * inachukua data zote
mysqli_fetch_assoc() inatoa data row kwa row
htmlspecialchars() inalinda dhidi ya XSS
🔹 11. UPDATE – Ku-edit Data (edit.php)
<?php
include 'db.php';

$id = $_GET['id'];

$result = mysqli_query($conn, "SELECT * FROM students WHERE id=$id");
$row = mysqli_fetch_assoc($result);

if (isset($_POST['update'])) {

$name = $_POST['name'];
$gender = $_POST['gender'];
$class = $_POST['class'];
$phone = $_POST['phone'];

$stmt = $conn->prepare("UPDATE students SET student_name=?, gender=?, class_name=?, phone=? WHERE id=?");
$stmt->bind_param("ssssi", $name, $gender, $class, $phone, $id);

if ($stmt->execute()) {
echo "Updated successfully!";
}
}
?>

<form method="POST">
<input type="text" name="name" value="<?php echo $row['student_name']; ?>"><br>
<input type="text" name="gender" value="<?php echo $row['gender']; ?>"><br>
<input type="text" name="class" value="<?php echo $row['class_name']; ?>"><br>
<input type="text" name="phone" value="<?php echo $row['phone']; ?>"><br>
<button name="update">Update</button>
</form>
🔹 12. Maelezo ya UPDATE
Tunachukua id kutoka URL
Tunachukua data ya student
Tunajaza form kwa data zilizopo
Tunafanya update kupitia prepared statement
🔹 13. DELETE – Kufuta Data (delete.php)
<?php
include 'db.php';

$id = $_GET['id'];

$stmt = $conn->prepare("DELETE FROM students WHERE id=?");
$stmt->bind_param("i", $id);

if ($stmt->execute()) {
header("Location: view.php");
}
?>
🔹 14. Maelezo ya DELETE
Inachukua id
Inafuta record husika
Inarudisha user kwenye page ya list
🔹 15. Navigation (index.php)
<h2>CRUD System</h2>

<a href="add.php">Add Student</a><br>
<a href="view.php">View Students</a>
🔹 16. Kuboresha UI kwa Bootstrap

Unaweza kuongeza Bootstrap:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css&quot; rel="stylesheet">

Faida:

✔ UI nzuri
✔ responsive
✔ professional

🔹 17. Security Muhimu Sana
1. SQL Injection

Usitumie:

$sql = "INSERT INTO students VALUES ('$name')";

Tumia:

$stmt = $conn->prepare(...);
2. XSS Attack

Tumia:

htmlspecialchars($row['student_name']);
3. Validation
if(empty($name)){
echo "Name required";
}
🔹 18. Best Practices

✔ Tumia prepared statements
✔ Tumia include db.php
✔ Tumia validation
✔ Tumia redirect baada ya delete
✔ Tumia Bootstrap

🔹 19. Advanced Features (Next Level)

Baada ya CRUD basic, unaweza kuongeza:

Search system
Pagination
Login system
Roles (Admin, Teacher, Student)
File upload
Reports
🔹 20. Mfano wa Real System (Project Yako)

Kwa system yako ya shule:

CRUD inaweza kuwa:

✔ Add student
✔ Add marks
✔ Update marks
✔ Delete marks
✔ View reports

🔚 Hitimisho

CRUD ni moyo wa kila system inayotumia MySQL.

Ukielewa CRUD:

✔ unaweza kutengeneza mfumo wowote
✔ unaweza kufanya automation ya data
✔ unaweza ku-build professional systems

🚀 Unahitaji mfumo au website ya biashara?

Chagua huduma hapa chini kisha mteja bofya moja kwa moja kwenda kwenye ukurasa wa huduma au kuwasiliana nasi kwa WhatsApp.

Share this post

Comments

0
No comments yet. Be the first to comment.

Continue Reading

Subscribe

Get new updates

Jiunge upokee posts mpya, tutorials, na updates za mifumo moja kwa moja kwenye email yako.

Faulink Support