Jinsi ya Kuunganisha Database kwa PDO kutumia PHP – Mwongozo Rahisi na Salama
Jifunze jinsi ya kufanya database connection kwa kutumia PDO katika PHP kwa njia salama, rahisi na professional. Mwongozo huu unafaa kwa beginners na developers wanaotengeneza website za kisasa.
MySQL Database
CREATE DATABASE pdo_blog;
USE pdo_blog;
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
content LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
File: config.php
<?php
$host = "localhost";
$dbname = "pdo_blog";
$username = "root";
$password = "";
try {
$pdo = new PDO(
"mysql:host=$host;dbname=$dbname;charset=utf8",
$username,
$password
);
// PDO Error Mode
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Database connected successfully";
} catch (PDOException $e) {
die("Connection failed: " . $e->getMessage());
}
?>
File: index.php
<?php
include "config.php";
if(isset($_POST['save'])){
$title = $_POST['title'];
$description = $_POST['description'];
$content = $_POST['content'];
$sql = "INSERT INTO posts(title, description, content)
VALUES(:title, :description, :content)";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':title' => $title,
':description' => $description,
':content' => $content
]);
header("Location: index.php");
exit();
}
$posts = $pdo->query("SELECT * FROM posts ORDER BY id DESC");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PDO Blog Tutorial</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body class="bg-light">
<nav class="navbar navbar-dark bg-primary">
<div class="container">
<a href="#" class="navbar-brand fw-bold">
PDO Blog Tutorial
</a>
</div>
</nav>
<div class="container mt-5">
<div class="card shadow mb-4">
<div class="card-header bg-primary text-white">
<h4>Add Blog Post</h4>
</div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label>Title</label>
<input type="text"
name="title"
class="form-control"
placeholder="Enter title"
required>
</div>
<div class="mb-3">
<label>Description</label>
<textarea name="description"
class="form-control"
rows="3"
placeholder="Enter description"
required></textarea>
</div>
<div class="mb-3">
<label>Content</label>
<textarea name="content"
class="form-control"
rows="6"
placeholder="Write content"
required></textarea>
</div>
<button type="submit"
name="save"
class="btn btn-success">
Save Post
</button>
</form>
</div>
</div>
<h3 class="mb-4">All Blog Posts</h3>
<div class="row">
<?php foreach($posts as $post): ?>
<div class="col-md-6 mb-4">
<div class="card shadow h-100">
<div class="card-body">
<h4 class="text-primary">
<?= htmlspecialchars($post['title']) ?>
</h4>
<p class="text-muted">
<?= date('d M Y', strtotime($post['created_at'])) ?>
</p>
<p>
<?= htmlspecialchars($post['description']) ?>
</p>
<div style="text-align: justify;">
<?= nl2br(htmlspecialchars($post['content'])) ?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<footer class="bg-primary text-white text-center p-3 mt-5">
<p class="mb-0">
© <?php echo date("Y"); ?> PDO Blog Tutorial
</p>
</footer>
</body>
</html>
Features za Code
PDO Secure Database Connection
Prepared Statements
SQL Injection Protection
Bootstrap Design
Add Unlimited Blog Posts
Responsive Design
Professional Layout
Simple CRUD Foundation
Website Link Example
🚀 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.