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 :)