PHP: Veritabanı sınıfı (DataBase Class)

database class

Yazılım geliştiriciler için en temel konu, kod yinelemeden kurtulup daha sade ve pratik bir şekilde class yapısı kullanmaktır. Veritabanı işlemlerinde her sorguda sırasıyla mysql_connect, mysql_query, myql_num_rows, mysql_fetch_array komutlarını hiyerarşisine uygun şekilde kullanmak fazlasıyla zaman kaybıdır.

Bu yüzden bu yazıda inceleyeceğimiz  DatabaseClass sınıfını kullanarak veritabanı bağlantısını her sayfada bir defa açmak ve sayfa altında da bir defa kapatmak yeterli olacaktır.  Öntanımlı basit fonksiyonlar yardımıyla da ihtiyacımız olan bütün mysql komutlarını rahat bir şekilde kullanabileceğiz.

Kişisel olarak sürekli kullandığım bu sınıfı mysql.php dosyası altında tutuyorum. Kodlarını inceleyelim;

mysql.php

conn = mysql_connect($this->host, $this->user, $this->pass)
or die("Veritabanımızda meydana gelen bir sorun yüzünden geçici bir süreliğine hizmet verememekteyiz");

@mysql_query("SET NAMES 'utf8'");
@mysql_query("SET CHARACTER SET 'utf8'"); //dil secenekleri
@mysql_query("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");

$select_db = @mysql_select_db($this->db) or die("Veritabanı seçilemedi");

}

function query($a) {//standart sorguların calistirildigi fonksiyon
return mysql_query($a,mysql_connect($this->host, $this->user, $this->pass)) ;
}
function fetch_array($result)
{
return mysql_fetch_array($result);
}

function fetch_assoc($result)
{
return mysql_fetch_assoc($result);
}

function num_rows($result)
{
return mysql_num_rows($result);
}

function affected_rows()
{
return mysql_affected_rows();
}

function free_result($result)
{
return mysql_free_result($result);
}

function insert_id()
{
return mysql_insert_id();
}

function result($result){
return mysql_result($result,0);
}
function close(){
return mysql_close($this->conn);
}

}

$dba = new DatabaseClass; // dba isimli Veritabani nesnesi olusuyor.
$dba->connect(); //mysql.php include edildigi anda veritabani baglantisi acilir.

?>

$dba nesnesi ile istenilen heryerde Class yapısının bütün fonksiyonunu kullanabiliriz.

Aşağıda örnek bir index.php ile $dba nesnesinin kullanımını inceleyelim.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Veritabanı sınıfı örnek kullanımı</title>
</head>
<body>

<?php
require_once("mysql.php");
/**
Yukarıdaki satırla birlikte mysql.php bu dosyaya dahil edilir
ve aynı anda $dba nesnesi oluşturulur.
Aynı zamanda veritabanı baglantımızda açılır.
*/

$sql=$dba->query("SELECT * FROM post"); //ornek query sekli

$adet=$dba->num_rows($sql); //$sql query değişkeninde kaç satır veri oldugunu hesaplar

while($row=$dba->fetch_assoc($sql)){
//ben genelde fetch_assoc kullanıyorum,
//aynı zamanda fetch_array da kullanilabilir.

//satirlar tek tek ele aliniyor

echo $row['title']; // ornek olarak post tablosundaki title verilerini yazdiriyoruz

}

//bütün veritabanı işlemleri bittiginde bağlantıyı kapatmamız gerekiyor.
$dba->close();
?>

</body>
</html>

9 thoughts on “PHP: Veritabanı sınıfı (DataBase Class)

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir