• 08-07-2008, 14:49:15
    #1
    Üyeliği durduruldu
    Yeni başladım sınıflar ile çalışmaya. İlk işe yarar sınıfımı da sizinle paylaşıyorum

    sinif.php
    <?php
    
    class vt {
    
    	public $host;
    	public $uname;
    	public $pword;
    	public $dbase;
    	public $baglanti;
    	public $sec;
    	
    	public function ayarlar($host, $uname, $pword, $dbase) {
    		$this->host = $host;
    		$this->uname = $uname;
    		$this->pword = $pword;
    		$this->dbase = $dbase;
    	}
    
    	public function baglan() {
    		try {
    			$this->baglanti = mysql_connect($this->host, $this->uname, $this->pword);
    			$this->sec = mysql_select_db($this->dbase, $this->baglanti);
    			
    			if((!$this->baglanti) or (!$this->sec)) {
    				throw new exception('Veritabani baglanti hatasi');
    			}
    		}
    			catch (exception $e) {
    				echo $e->getMessage();
    			}	
    	}
    	
    	public function sorgu($sorgu) {
    		return mysql_query($sorgu);
    	}
    	
    	public function kapat() {
    		mysql_close($this->baglanti);
    	}
    
    }
    
    ?>
    Kullanımı:
    baglanti.php
    <?php
    
    include "sinif.php"; 
    
    $host = '';
    $uname = '';
    $pword = '';
    $dbase = '';
    
    $vt = new vt();
    $vt->ayarlar($host, $uname, $pword, $dbase);
    
    $vt->baglan();
    // MySQL işlemleri
    $vt->kapat();
    
    ?>
  • 08-07-2008, 15:01:57
    #2
    Üyeliği durduruldu
    MySQL sorgularını da bu şekilde yapabilirsiniz.

    $sorgu = 'SELECT * FROM tablo';
    $sonuc = $vt->sorgu($sorgu);
  • 08-07-2008, 15:09:41
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    anlamadığım niye böyle bir sınıfa ihtiyaç duysun millet
    sonuçta direk mysql_connect diye bağlanılabilirken
    include ederek ek bir yük getirmeye servera ne gerek var
  • 08-07-2008, 15:46:49
    #4
    Üyeliği durduruldu
    wm_xfreex adlı üyeden alıntı: mesajı görüntüle
    anlamadığım niye böyle bir sınıfa ihtiyaç duysun millet
    sonuçta direk mysql_connect diye bağlanılabilirken
    include ederek ek bir yük getirmeye servera ne gerek var
    Bu sınıf sayesinde $vt->baglan(); ile MySQL bağlantısı yapabilirsiniz. Sürekli sorgular ile çalışanlar için faydalı olacaktır. Yani mysql_connect, mysql_select_db gibi fonksiyonlar ile uğraşmayacaksınız, her defasında else { echo 'Veri tabanını seçemedim' } demiyeceksiniz

    Benim gibi yeni başlayanlar için güzel bir örnek olabilir.
  • 08-07-2008, 15:57:37
    #5
    Üyeliği durduruldu
    throw new exception('Veritabani baglanti hatasi');

    bu kodu hiç kullanmamıştım. ne işe yarıyor?
  • 08-07-2008, 16:12:23
    #6
    Üyeliği durduruldu
    Hard_Love adlı üyeden alıntı: mesajı görüntüle
    throw new exception('Veritabani baglanti hatasi');
    bu kodu hiç kullanmamıştım. ne işe yarıyor?
    Bir çeşit hata mesajı yaratıyorsun ve bunu bir olaya bağlıyorsun. Bizim kullandığımız "eğer bağlantı olmazsa" gibi. Bu durum gerçekleştiğinde catch'i tetikliyor ve getMessage() ile bu mesajı verdiriyoruz.
  • 08-07-2008, 16:18:04
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Yararli bir sınıf olmuş ..

    Kesinlikle fonksiyonlarla uğraşmaktansa Nesne yönelimli düşünmek daha mantıklı
  • 08-07-2008, 18:37:47
    #8
    Alonso adlı üyeden alıntı: mesajı görüntüle
    Bu sınıf sayesinde $vt->baglan(); ile MySQL bağlantısı yapabilirsiniz. Sürekli sorgular ile çalışanlar için faydalı olacaktır. Yani mysql_connect, mysql_select_db gibi fonksiyonlar ile uğraşmayacaksınız, her defasında else { echo 'Veri tabanını seçemedim' } demiyeceksiniz
    Benim gibi yeni başlayanlar için güzel bir örnek olabilir.
    böyle düşünürsek herşeyin bir sınıfı olması gerekir bence serverı include ile yoracağımıza direk fonksiyonlarla çalışmak daha iyi
    ayrıca artık php 5 ile bir satırlık kodla veritabanına bağlanılabiliyor bu kadar hiç gerek yok
    örnek:
    mysqli_connect("localhost","root","sifre","isimler");
    //mysqli_connect("hostunuz","kullanıcı","sifre","db_adi");
  • 08-07-2008, 19:01:50
    #9
    Benzer bir örnek Mehmet Şamlı'nın PHP5 kitabında vardı. İşe yarar bi örnek, teşekkürler.