Veritabanı Sınıfı

teknolojide
10-11-2010, 19:37   |  #1  
OP Taze Üye
Teşekkür Sayısı: 0
14 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

   <?php 
/* 
  Veritabanı Nesnesi 
  ----------------------- 
  Dosya: [INC]veritabani.php 
  İş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'] = @mysql_connect($vt['alan'], $vt['yonetici'], $vt['yonetici_sifre'])) { 
            
$this->vt_hata(mysql_errno(), mysql_error()); 
        } 
        if (!
$vt['secim'] = @mysql_select_db($vt['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 = @mysql_close($this->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 = @fopen($vt['hata_log'], 'a+'); 
        if (
$hatalog_kaydet = @fputs($hatalog_dt, $hata_mesaj)) { 
            
$donen_deger = 1; 
        } else { 
            
$donen_deger = 0; 
        } 
        @
fclose($hatalog_dt); 
        
$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 = @fopen($vt['islem_log'], 'a+'); 
        if (
$log_kaydet = @fputs($log_dt, $log_kayit)) { 
            
$donen_deger = 1; 
        } else { 
            
$donen_deger = 0; 
        } 
        @
fclose($log_dt); 
        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; 
?>
   

haytefli92
10-11-2010, 19:51   |  #2  
Taze Üye
Teşekkür Sayısı: 0
3 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

teşekkürler yararlı bilgi :)