LucKy Administrator
Cinsiyet : Mesaj Sayısı : 291 Kayıt tarihi : 20/05/10 Nerden : İstanbul/Fatih
| Konu: Veritabanı Kütüphanesi Oluşturmak C.tesi Mayıs 22, 2010 11:53 am | |
| Php sayfalarımızda uzun uzun mysql kodları yazmaktan yorulan arkadaşlara en hızlı ve güvenilir yöntem veritabanı nesnesi oluşturmaktır. Böylece daha hızlı ve güvenilir şekilde veritabanına bağlanıp aynı anda birden fazla işlemi yaptırabilirsiniz. Şu anda kendi yazmış olduğum panel yazılımı ve yapmış olduğum web sitelerinde bu kütüphaneyi kullanmaktayım. Sözü daha fazla uzatmadan bu veritabanı kütüphanemizi yaratmaya başlayalım. - Kod:
-
<? class veritabani{ var $host; /* MySQL Host'u */ var $kullanici; /* MySQL Kullanıcı Adı */ var $sifre; /* MySQL Şifresi */ var $baglanti_no; /* MySQL Bağlantı Tanımlayıcı Numarası */ var $veritabani; /* Kullanılacak Veritabanı Adı */ var $sorgu; var $sorgu_no; /* Aynı anda birden fazla sorguyu ayırabilmek için gerekli */ /* KURUCU FONKSİYON */ function veritabani(){ $this->host = "localhost"; /* MySQL Host'u */ $this->kullanici = "root"; /* MySQL Kullanıcı Adı */ $this->sifre = "sifre"; /* MySQL Şifresi */ $this->veritabani = "veritabani"; /* Veritabanı Adı */ $this->baglanti_no = 0; $this->sorgu_no = 0; } /* HOST SEÇİLMESİ */ function secHost($v_host){ $this->host = $v_host; } /* KULLANICI SEÇİLMESİ */ function secKullanici($k_adi,$k_sifre){ $this->kullanici = $k_adi; $this->sifre = $k_sifre; } /* VERİTABANI SEÇİLMESİ */ function secVeritabani($veritabani_adi){ $this->veritabani = $veritabani_adi; } /* VERİTABANINA BAĞLANMASI */ function baglan(){ if($this->veritabani == ''){ $this->durdur('Lüften önce veritabanı seçiniz.'); }
$this->baglanti_no = @mysql_connect( $this->host, $this->kullanici, $this->sifre ); if(!$this->baglanti_no){ $this->durdur('Veritabani sunucusu ile bağlantı kurulamadı.'); } if(!@mysql_select_db( $this->veritabani, $this->baglanti_no )){ $this->durdur('Veritabanı seçilemedi'); } } /* VERİTABANI BAĞLANTISININ KESİLMESİ */ function kapat(){ if($this->baglanti_no){ mysql_close($this->baglanti_no); } } /* SORGULAMA YAPILMASI */ function sorgula($sorgu_cumlesi){ /* Daha önce bağlantı kurulmamış ise otomatik olarak bağlşantıyı kuralım. */ if(!$this->baglanti_no){ $this->baglan(); }
$this->sorgu[++$this->sorgu_no] = @mysql_query($sorgu_cumlesi,$this->baglanti_no); if(!$this->sorgu[$this->sorgu_no]){ $this->durdur('<br>'.$sorgu_cumlesi.'<br>'.mysql_error()); } return $this->sorgu_no; } /* SORGU SONUCUNDAKİ TOPLAM SIRA SAYISININ ALINMASI */ function toplam_sira($sorgu_no = -1){ /* Sorgu numarası verilmemişse sonuncusunu kullan. */ if($sorgu_no == -1){ $sorgu_no = $this->sorgu_no; } if( (!$this->baglanti_no) || (!$this->sorgu[$sorgu_no]) ){ $this->durdur('Lütfen önce bir sorgulama yapınız.'); } return mysql_num_rows($this->sorgu[$sorgu_no]); } /* SORGU SONUÇLARININ DİZİ DEĞİŞKEN FORMUNDA SIRALAR HALİNDE ÇEKİLMESİ */ function sonuc_cek($sorgu_no = -1){ /* Sorgu numarası verilmemişse sonuncusunu kullan. */ if($sorgu_no == -1){ $sorgu_no = $this->sorgu_no; } if( (!$this->baglanti_no) || (!$this->sorgu[$sorgu_no]) ){ $this->durdur('Lütfen önce bir sorgulama yapınız.'); } return mysql_fetch_array($this->sorgu[$sorgu_no]); }
/* SORGU SONUCUNDAKİ TEK BİR SONUÇ ALINMASI */ /* Buradaki kolon tablonuzdaki hangi kolondaki veriyi almak istiyorsanız o kolon adını girmelisiniz. */ function alTek($sorgu_no = -1,$kolon) { if($sorgu_no == -1){ $sorgu_no = $this->sorgu_no; } if( (!$this->baglanti_no) || (!$this->sorgu[$sorgu_no]) ){ $this->durdur('Lüfen önce bir sorgulama yapınız.'); } return mysql_result($this->sorgu[$sorgu_no],0,$kolon); } /* INSERT İLE YAPILAN KAYIT NUMARASININ ALINMASI */ function kayit_no(){ $this->affRows = 0; if( (!$this->baglanti_no) || (!$this->sorgu[$this->sorgu_no]) ){ $this->durdur('Lütfen önce bir sorgulama yapınız.'); } return mysql_insert_id(); } /* HATA MEYDANA GELİRSE İŞLEMİN DURDURULMASI */ function durdur($hata_mesaji){ echo "<b>Veritabanı sunucumuz ile olan bağlantımızda bir problem "."meydana geldi.</b><br>"."<b>Hata Mesajı: </b><i>$hata_mesaji</i><br>"; exit(); } } ?> Veritabanı nesnesi geliştirilmesi (veritabani.php) Evet veritabanı kütüphanemizi oluşturmuş olduk. Böylelikle veritabanı işlemlerinizi çok kolay bir şekilde gerçekleştirebilirsiniz. Şimdide bir sayfa içerisinde nasıl kullanacağımızı görelim. Böylelikle ne kadar kolay olduğunu göreceksiniz. - Kod:
-
<?
/* ilk olarak tabiki yapmış olduğumuz veritabanı kütüphanesini yükleyelim. */ require"veritabani.php";
/* Veritabanımızın ismini kısaca 'vt' olarak tanımlayalım. */ $vt = new veritabani; /* Burada veritabanı sınıfının tüm özelliklerini 'vt' ye yüklüyoruz. */
/* Burada ise hangi veritabanında işlem yapmak istiyorsak o veritabanını seçtirelim. Örneğin 'Kişiler' veritabanımız olsun. */ $vt->secVeritabani('kisiler');
/* Sıra geldi sorgulama işlemimize. İstediğimiz sorguyu yapalım */ $vt->sorgula('SELECT * FROM kisiler');
/* Bir sıra veri çekelim. */ $sira = $vt->sonuc_cek();
/* Bakalım ilk sıradaki kişinin adı neymiş? */ echo $sira['AD']; /* Şevki */
/* Eğer döngü yardımıyla verilerin tamamını yazdırmak isterseniz.. */ while ($sira = $vt->sonuc_cek()){ echo $sira['AD']."<br>"; }
/* Peki seçtiğimiz tablomuzda kayıt varmı yokmu onu nasıl yazdırırız. Şu şekilde */ if ($this->vt->toplam_sira()==0){ echo "Kayıt Bulunamamıştır."; }else{ echo "Toplam: ".$vt->toplam_sira()." Kayıt Bulunmuştur."; }
/* Tek bir kolondaki değeri almak için ise */ $vt->sorgula("SELECT * FROM kisiler WHERE kisiID='".$kisiID."'"); echo "Kişinin Soyadı:".$this->vt->alTek('-1','SOYADI');
?> Veritabanı nesnesinin kullanımı (ornek1.php) Veritabanı nesnemizi kurduk ve nasıl çalışmasından kısaca bahsettim. bir sonraki dersimde daha gelişmiş olarak bu kütüphanemizi fonksiyonlar yardımı ile nasıl çalıştırabileceğimizi göreceğiz. Hepinize kolay gelsin. sanalkurs.net | |
|