Açıklama:
Yaptığım çalışmalarda kullanmak için yazmış olduğum bir projeden bağımsız veritabanı objem var.Temel özellikleri, bağlantı açmak-kapamak, sorgu göndermek-karşılamak, hafızayı temizlemek, işlem ve hata logları tutmak gibi şeyler.En büyük avantajı ise bir işlem yaparken
$sorgu = @mysql_query('SELECT alan FROM tablo') or die('Hata');
şeklinde degilde
$vt->sql_sorgu('SELECT alan FROM tablo');
ifadesinin yetiyor olması, nesne tabanlı olduğu için siz bunu yapınca zaten hata oluşursa gerekeni yapıyor ve tüm sorguları ayrı bir log dosyasında tutuyor.İncelemenizi tavsiye ederim.Yalnız şöyle birşeyde ekledim sorgu loglarını tutarken, sorgu cümlesinin yanında $sorgu değerinide kaydettirdiğim için log dosyasına bakınca resource id #2 gibi bir ifade gozüküyor.silecektim ama hoş duruyo dedim kalsın bari.
Yaptığım çalışmalarda kullanmak için yazmış olduğum bir projeden bağımsız veritabanı objem var.Temel özellikleri, bağlantı açmak-kapamak, sorgu göndermek-karşılamak, hafızayı temizlemek, işlem ve hata logları tutmak gibi şeyler.En büyük avantajı ise bir işlem yaparken
$sorgu = @mysql_query('SELECT alan FROM tablo') or die('Hata');
şeklinde degilde
$vt->sql_sorgu('SELECT alan FROM tablo');
ifadesinin yetiyor olması, nesne tabanlı olduğu için siz bunu yapınca zaten hata oluşursa gerekeni yapıyor ve tüm sorguları ayrı bir log dosyasında tutuyor.İncelemenizi tavsiye ederim.Yalnız şöyle birşeyde ekledim sorgu loglarını tutarken, sorgu cümlesinin yanında $sorgu değerinide kaydettirdiğim için log dosyasına bakınca resource id #2 gibi bir ifade gozüküyor.silecektim ama hoş duruyo dedim kalsın bari.
Kod:
<?php
/*
Veritabanı Nesnesi
-----------------------
Dosya: [INC]veritabani.php
Yazan: Pan <panie<span class="userTag">@gamebox.net></span>
Tarih: 13 Temmuz 2004
İşlev: Çok fonksiyonlu veritabanı nesnesi.
*/
### Veritabanı değişkenleri ve ayarları ###
$vt['alan'] = 'localhost'; // Veritabanının çalıştığı alan
$vt['yonetici'] = 'root'; // Veritabanı yöneticisinin kullanıcı adı
$vt['yonetici_sifre'] = ''; // Veritabanı yöneticisinin şifresi
$vt['kullan_vt'] = 'deneme'; // Kullanılacak veritabanı adı
$vt['hata_log'] = '../loglar/vt_hata.log'; // Hata kayıtlarının tutulacağı dosya
$vt['islem_log'] = '../loglar/vt_islem.log'; // Veritabanına yapılan sorguların tutulacağı dosya
$sql['varsayilan_satir'] = 0; // Sorgudan tek satır çekilirken, satır belirtilmezse, varsayılan olarak kullanılacak satır numarası
$sql['varsayilan_sutun'] = 'id'; // Yukarıdakinin, numara değilde, sütun olan hali
### Veritabanı Nesnesi ###
class Veritabani {
# Nesne Değişkenleri #
var $vt_baglanti; // Veritabanı bağlantısı yapıldıktan sonra, bağlantı numarası bu değişkene atanır
var $vt_secim; // Veritabanı seçimi yapıldıktan sonra, dönen değer buraya atanır
var $tarih; // Nesne çağrıldığı andaki tarihi tutar
var $dosya; // Şuanda üzerinde çalışılan dosya yolu ve ismini tutar
var $sonsorgu; // Son yapılan SQL sorgusunu tutar
# Nesne Fonksiyonları #
function Veritabani() { // Nesne çağrıldığında dosya ile ilgili belirlemeleri yapar
$this->tarih = date('d/m/Y H:i');
$this->dosya = __FILE__;
}
function vt_baglan() { // Veritabanı bağlantısı sağlar ve kullanılacak veritabanını seçer
global $vt;
if (!$vt['baglanti'] = <span class="userTag">@mysql_connect($vt[</span>'alan'], $vt['yonetici'], $vt['yonetici_sifre'])) {
$this->vt_hata(mysql_errno(), mysql_error());
}
if (!$vt['secim'] = <span class="userTag">@mysql_select_db($vt[</span>'kullan_vt'])) {
$this->vt_hata(mysql_errno(), mysql_error());
}
$this->vt_baglanti = $vt['baglanti'];
$this->vt_secim = $vt['secim'];
return $this->vt_baglanti;
}
function vt_kapat() {
if (!$kapat = <span class="userTag">@mysql_close($this-></span>vt_baglanti)) {
$this->vt_hata(mysql_errno(), mysql_error());
}
return $kapat;
}
function vt_hata($hatano, $hata) { // Veritabanı hata raporu tutar ve bunları dosyada saklar
global $vt;
$hata_mesaj = "Hata Tarihi: <".$this->tarih.">\r\nHatalı Dosya: <".$this->dosya.">\r\nHata No: <$hatano>\r\nHata: <$hata>\r\n--------------------------------------------\r\n";
$hatalog_dt = <span class="userTag"><span class="userTag">@fopen($vt[</span></span>'hata_log'], 'a+');
if ($hatalog_kaydet = @fputs($hatalog_dt, $hata_mesaj)) {
$donen_deger = 1;
} else {
$donen_deger = 0;
}
<span class="userTag">@fclose($hatalog_dt);</span>
$mesaj_goster = '<h1>Veritabanı Hatası</h1>
<p>Üzgünüz, servislerimizde bir veritabanı hatası oluştu, hata site yöneticisine bildirildi.<br />
Lütfen siteye, daha sonra tekrar geliniz, teşekkür ederiz.</p>';
die($mesaj_goster);
return $donen_deger;
}
function vt_log($sorgu_cumle, $sorgu) { // Veritabanına yapılan sorguların raporunu tutar
global $vt;
$log_kayit = "İşlem Tarihi: <".$this->tarih.">\r\nİşlem Yapılan Dosya: <".$this->dosya.">\r\nSorgu Cümlesi: <$sorgu_cumle>\r\nSorgudan Dönen Değer: <$sorgu>\r\n--------------------------------------------\r\n";
$log_dt = <span class="userTag"><span class="userTag">@fopen($vt[</span></span>'islem_log'], 'a+');
if ($log_kaydet = @fputs($log_dt, $log_kayit)) {
$donen_deger = 1;
} else {
$donen_deger = 0;
}
<span class="userTag">@fclose($log_dt);</span>
return $donen_deger;
}
function vt_hafiza($sorgu = '') { // Sorgudan dönen veri varsa, bunlar için hafıza ayrılır, nu fonksiyon o hafizayı boşaltır
if ($sorgu == '') {
$sorgu = $this->sonsorgu;
}
if (!$temizle = @mysql_free_result($sorgu)) {
$this->vt_hata(mysql_errno(), mysql_error());
}
$this->sonsorgu = NULL;
return $temizle;
}
function sql_sorgu($sorgu_cumle) { // Veritabanına, SQL sorgusu gönderir
if(!$sorgu = @mysql_query($sorgu_cumle)) {
$this->vt_hata(mysql_errno(), mysql_error());
}
$this->vt_log($sorgu_cumle, $sorgu);
$this->sonsorgu = $sorgu;
return $sorgu;
}
function sql_satircek($sorgu = '', $satir = '', $sutun = '') { // Yapılan sorgudan dönen değeri tek satır olarak alır (bkz: mysql_result())
global $sql;
if ($sorgu == '') $sorgu = $this->sonsorgu;
if ($satir == '') $satir = $sql['varsayilan_satir'];
if ($sutun == '') $sutun = $sql['varsayilan_sutun'];
if (!$satircek = @mysql_result($sorgu, $satir, $sutun)) {
$this->vt_hata(mysql_errno(), mysql_error());
}
return $satircek;
}
function sql_toplamkayit($sorgu = '') { // Bir sorgudan dönen toplam kayıt sayısını verir
if ($sorgu == '') $sorgu = $this->sonsorgu;
if (!$toplamkayit = @mysql_num_rows($sorgu)) {
vt_hata(mysql_errno(), mysql_error());
}
return $toplamkayit;
}
}
### Nesne Testi ###
$Vt = new Veritabani;
$Vt-> vt_baglan();
$Vt-> sql_sorgu('SELECT isim FROM personeller LIMIT 1');
$satir = $Vt-> sql_satircek('', '', 'isim');
$Vt-> vt_hafiza();
$Vt-> vt_kapat();
echo $satir;
?>