PHP 8 ile bir veritabanı sınıfı oluşturmak, veritabanı işlemlerini daha düzenli ve yeniden kullanılabilir hale getirir. Bu tür bir sınıf, veritabanına bağlanma, veri ekleme, güncelleme, silme ve sorgulama işlemlerini kolaylaştırır. Aşağıda, basit bir veritabanı sınıfının nasıl oluşturulacağı ve kullanılacağı ile ilgili adım adım bir rehber bulabilirsiniz.
1. Veritabanı Sınıfını Tanımlama
Aşağıda, temel veritabanı işlemleri için bir Database
sınıfı örneği verilmiştir:
<?php
class Database {
private $host;
private $db;
private $user;
private $pass;
private $charset;
private $pdo;
// Constructor
public
function __construct(
$host, $db, $user, $pass, $charset = 'utf8mb4'
) {
$this->host = $host;
$this->db = $db;
$this->user = $user;
$this->pass = $pass;
$this->charset = $charset;
$this->connect();
}
// Veritabanına bağlanma
private
function connect(
) {
$dsn = "mysql:host={$this->host};dbname={$this->db};charset={$this->charset}";
try {
$this->pdo = new PDO($dsn, $this->user, $this->pass);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Bağlantı hatası: " . $e->getMessage();
}
}
// Veri ekleme
public
function insert(
$table, $data
) {
$fields = implode(", ", array_keys($data));
$placeholders = ":" . implode(", :", array_keys($data));
$sql = "INSERT INTO $table ($fields) VALUES ($placeholders)";
$stmt = $this->pdo->prepare($sql);
$stmt->execute($data);
}
// Veri güncelleme
public
function update(
$table, $data, $id
) {
$set = '';
foreach ($data as $key => $value) {
$set .= "$key = :$key, ";
}
$set = rtrim($set, ', '); // Sonundaki virgülü kaldır
$sql = "UPDATE $table SET $set WHERE id = :id";
$data['id'] = $id; // ID'yi ekle
$stmt = $this->pdo->prepare($sql);
$stmt->execute($data);
}
// Veri silme
public
function delete(
$table, $id
) {
$sql = "DELETE FROM $table WHERE id = :id";
$stmt = $this->pdo->prepare($sql);
$stmt->execute(['id' => $id]);
}
// Veri sorgulama
public
function select(
$table, $columns = '*', $conditions = ''
) {
$sql = "SELECT $columns FROM $table $conditions";
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
}
?>
2. Sınıfı Kullanma
Bu sınıfı kullanarak veritabanı işlemlerini gerçekleştirmek için aşağıdaki örnek kodu inceleyebilirsiniz:
<?php
// Veritabanı bilgileri
$host = 'localhost';
$db = 'veritabani_adi';
$user = 'kullanici_adi';
$pass = 'sifre';
// Database sınıfını oluşturma
$db = new Database($host, $db, $user, $pass);
// Veri ekleme
$db->insert('kullanici', [
'ad' => 'Ali Veli',
'email' => 'ali@example.com'
]);
// Veri güncelleme
$db->update('kullanici', [
'email' => 'yeni_email@example.com'
], 1); // ID'si 1 olan kullanıcının e-postasını güncelle
// Veri silme
$db->delete('kullanici', 1); // ID'si 1 olan kullanıcıyı sil
// Veri sorgulama
$kullanicilar = $db->select('kullanici');
print_r($kullanicilar);
?>
Açıklamalar
-
Sınıf Yapısı:
Database
sınıfı, veritabanı bağlantısı ve işlemleri için gerekli yöntemleri içerir. Bağlantı bilgileri constructor ile alınır ve veritabanına bağlanmak içinconnect
yöntemi kullanılır. -
Veri Ekleme:
insert
yöntemi, bir tabloya veri eklemek için kullanılır. Bu yöntem, tablo adını ve eklemek istediğiniz verileri alır. -
Veri Güncelleme:
update
yöntemi, belirli bir kaydı güncellemek için kullanılır. Güncellenmesi gereken verileri ve ID'yi alır. -
Veri Silme:
delete
yöntemi, belirli bir kaydı silmek için kullanılır. -
Veri Sorgulama:
select
yöntemi, belirli bir tablodan veri sorgulamak için kullanılır. İsteğe bağlı olarak hangi sütunların döneceğini ve hangi koşulların geçerli olduğunu belirtmenize olanak tanır.
Sonuç
Bu örnek, PHP 8 ile basit bir veritabanı sınıfı oluşturarak veritabanı işlemlerini nasıl gerçekleştirebileceğinizi göstermektedir. İhtiyacınıza göre bu sınıfı daha karmaşık işlemleri destekleyecek şekilde geliştirebilirsiniz.