Türkiye Online Medya Araştırması
Profili Göster

PHP de nesne yönelimli veritabanı bağlantısı (MySQL)

Rıdvan KARATAŞ Tarih: 2/07/2008 Yorum: 2 adet

Okunma : 3015 Tutanlar: Bu yazıyı 2 kişi tuttu.

PHP'de MySQL bağlantısını oluşturmak için birden çok yöntem vardır. Bir kaç satır kod öbeği, veritabanına bağlantı oluşturabilir hatta sorgulayabilir. Birazdan kodlarıyla örneklendireceğim veritabanı bağlantı nesnesi class teknikleriyle sorgulamaların tüm ihtiyaçlarını karşılayacaktır.

Mümkün olduğu kadar açıklamaları mevcut.


<?
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ırd edebilmek için gerekli. */





/*  Kurucu Fonksiyon    */

function veritabani()

{

/*  Ön tanımlı ayarlar. Bunları kendi sisteminize göre değiştirebilirsiniz. */

$this->host = "localhost";         /*  MySQL Host'u    */

$this->kullanici = "root";         /*  MySQL kullanıcı adı */

$this->sifre = "sifre";                /*  MySQL şifresi   */

$this->veritabani = "websitesi";   /*  MySQL kullanılacak veritabanı   */



/*  Bunlara dokunmayın  */

$this->baglanti_no = 0;

$this->sorgu_no = 0;

}





/*  Host seçilmesi. */

function secHost($v_host)

{

$this->host = $v_host;

}





/*  Kullanıcı seçilmesi.    */

function secKullanici($k_adi,$k_sifre)

{

$this->kullanici = $k_adi;

$this->sifre = $k_sifre;

}


/*  Veritabani seçilmesi    */

function secVeritabani($veritabani_adi)

{

$this->veritabani = $veritabani_adi;

}



/*  Veritabanına bağlanılması   */

function baglan()

{

if ($this->veritabani == "")

$this->durdur("Lütfen önce bir veritabanı seçiniz.");



$this->baglanti_no = @mysql_connect( $this->host, $this->kullanici, $this->sifre );



if (!$this->baglanti_no)

$this->durdur("Veritabanı sunucusu ile bağlantı kurulamadı.");



if (!@mysql_select_db($this->veritabani, $this->baglanti_no))

$this->durdur("Veritabanı seçilemedi.");

}


/*  Veritabanı bağlantısının kesilmesi. */

function kapat()

{

if ($this->baglanti_no)

mysql_close($this->baglanti_no);

}



/*  Sorgulama yapılması */

function sorgula($sorgu_cumlesi)

{

/*  Daha önceden bağlantı kurulmamış ise otomatik olarak bağlantı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 sonucundaki toplam sıra sayısının alınması    */

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çlarının dizi değişken formunda sıralar halinde çekilmesi.    */

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]);

}



/*  INSERT ile yapılan kayıt numarasının alınması.  */

function kayit_no()

{

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 gelirse işlemin durdurulması.  */

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();

}


}

?>

Bu scriptin kullanımını açıklamarıyla baktığınızda rahatça anlayacaksınız. Scriptin kullanımı ise oldukça basit.

<?php

require "veritabani.php"; // Scripti çağırdık

$vt = new veritabani; // Veritabanina kisaca vt dedik

$vt->SecVeritabani("DBNAME"); // Veritabanı seçilmesi

$vt->sorgula("SELECT * FROM tablo;"); // Örnek bi sorgu

$sira = $vt->sonuc_cek(); // Bir sira veri çekilmesi

/* Son olarak sonuc_cek olayını mysql_fetch_array ile yaptığımız için, sonuçlarımızı bir dizi değişkende toplayabiliriz. Yani bir tek sira veri: */

echo $sira["SUTUNADI"];

?>

İyi çalışmalar.

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
Murat Çorlu 2/07/2008

PHP5'te burada kurucu fonksiyon diye adlandırılan sınıf metodunun özel adı __construct metodudur.


class veritabani {

   public function __construct(){
      // Sınıf çalıştırıldığında işlenecek kodlar
   }

   public function __destruct(){
      // Sınıf kapatıldığında işlenecek kodlar
   }
}
Profili Göster
Mustafa VELİOĞLU 7/04/2009

Sınıf ismi ile aynı olarak kullandığı zaman, fonksiyon adını o zaman aynı işlevi görür zaten.

aç-kapa Yazarın Diğer Yazıları

Makale

İlişkili makale bulunamadı.

yeni bir tane ekleyin

Haber

İlişkili haber bulunamadı.

yeni bir tane ekleyin

Ders

İlişkili ders bulunamadı.

yeni bir tane ekleyin

yeni üyelik | şifremi unuttum

aç-kapa Toplantı Özgür Yazılım ve Linux Günleri '10

Özgür Yazılım ve Linux Günleri '10

İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü ve Linux Kullanıcıları Derneği'nin 9 yıldır düzenlemekte oldukları etkinlikler bu yıl `Özgür Y...
Kategori: Toplantı

aç-kapa Yarışma 3. Uluslararası Ekslibris Yarışması: İstanbul 2010

3. Uluslararası Ekslibris Yarışması: İstanbul 2010

İstanbul Ekslibris Dernegi, Feyziye Mektepleri Vakfı ve Işık Üniversitesi, kitaplar için mülkiyet işareti olarak kabul edilen ve üzerinde estetik dege...
Kategori: Yarışma

aç-kapa Konferans Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Yeni Medya ve Etkileşim Konferansı 2010 - Marmara Üniversitesi

Generally speaking, the term "New" brought about debates. We try to open up and elucidate the term "New" along with "Interact...
Kategori: Konferans

aç-kapa Konferans 3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

3. Uluslararası Gelecek İçin Öğrenme Alanında Yenilikler Konferansı 2010: e-Öğrenme

Konferans ile ilgili ayrıntılı bilgiye aşağıdaki bağlantıdan ulaşabilirsiniz: http://www.futurelearning.org.tr/katilim_cagrisitr.pdf ...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 61 (50 kayıtlı, 11 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul