<?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;
?>
Veritabanı Sınıfı
OP Taze Üye
Teşekkür Sayısı: 0
14 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010