Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
[email protected] webmail now available. Want one? Go here.
Cannot use outlook/hotmail/live here to register as they blocking our mail servers. #microsoftdeez
Obey the Epel!

Paste

Pasted as PHP by zumsuk ( 13 years ago )
<?php header('Content-Type: text/html; charset=utf-8');
//  /--------------------------------------------------------------\
//  |         Bu sınıf Emre Çetin tarafından kodlanmıştır          |
//  |             iletişim : [email protected]                      |
//  |         Dikkat: php 5 ve mysqli olmadan çalışmaz !           |
//  |--------------------------------------------------------------|
//  |          Örnek kullanım aşşağıda gösterilmiştir              |
//  \--------------------------------------------------------------/
/*
@veri tabanı sınıfımızı yaratalım;
$vt = new vt(); 

@host ve veritabanına bağlanalım;
$vt->baglan('localhost','root','','tarcan');

@sorgu cekelim (listelemek veya tek sorgu çekmek için)
$get = $vt->gor("select * from uyeler");

@ çektiğiniz sorgunun hepsini görmek için şöyle birşey yapabilirsiniz.
echo '<pre>';print_r($get);echo'</pre>';

@isterseniz tek tek şu şekilde bakabilirsiniz;1. kayıdın (id değil) nick'ine bakabilirsiniz.
$get[1]['nick'];

@veri eklemek , silmek, düzenlemek için; [soru kısmına update vs.. şeklinde normalde gireceğiniz sql sorgusunu yazın]
$vt->sql('sql sorgunuz');

@hata varsa ekrana bastıracaktr
$vt->sonuc();
----------------------------

!!!!! Eğer sonradan farklı veritabanına bağlanmak isterseniz ; 
$vt->baglan() demeden önce veritabanını seçin ;
$vt->db='yenidb'; şeklinde

----------------------------
## Ekstralar ##

@Eğer kaç sonuç bulunduğunu merak ediyorsanız
echo $vt->kacsonuc;

@html süzgeci için;
$vt->suz($degisken);

@sql injection önlemi için;
$vt->guvenlik($degisken);

@Hem html hemde sql için kullanabileceğiniz kod; [fakat guvenlik kısmı veritabanı işlemelerinde, diğer kısımda ekrana bastırırken kullanılır]
$vt->suz($vt->guvenlik($degisken));

*/

if (version_compare(PHP_VERSION, '5.0.0')===-1)
            die('<b>VT Error:</b> php 5 neden kurmuyorsun arkadaşım ?');

        if (!extension_loaded('mysqli'))
            die('<b>Hata:</b> mysqli olmadan çalışmaz !');

class VT{
    protected $server = 'localhost'; // server : @localhost
    protected $suser = 'root'; // server kullanıcısı : @root
    protected $spass = ''; // server şifresi (varsa)
    public $db = 'tarcan'; // veritabanı @ sonradan database seçmek isterseniz $vt->db='yenidb'; şeklinde kullanabilirsiniz
    
    public $durum; // mysqli durumu
    public $sor; // mysql_query ile birleştirilen hali
    public $kacsonuc;
    
    protected $hata = False; // hata varsa True yapıp olduğunu belirticez
    protected $hatalar = array(); // hataları listelicez
    
    function baglan(){
        $this->durum = @mysqli_connect($this->server,$this->suser,$this->spass); // veritabanına bağlanıp bağlantıyı durum değişkenine atıyoruz
        // utf-8 charset'i ekliyoruz ki kodlama, veritabanı, sayfa yapısı vs.. utf-8 tercihimdir herşeyi destekler
        if(!mysqli_set_charset($this->durum, "utf8")){ // eğer hata çıkarsa (!)
            $this->hatalar[] = 'Charset ayarlarken sıkıntı çıktı'; // hataya ekle
            $this->hata=True; // hata var
        }
        if(!$this->durum){ // Eğer bağlantı yoksa hata ekle
            $this->hatalar[] = 'Mysql Bağlantısında sorun var.Server, kullanıcı ve şifreyi doğru girin';
            $this->hata=True;
        }
        $this->dbsec($this->db); // database seç (fonksiyona yolla)
    }
    
    function dbsec($db){
        if(!mysqli_select_db($this->durum,$db)){ // database'e bağlan, bağlanmazsa hataya at
            $this->hatalar[] = 'Database seçilemedi.Adı kontrol edin';
            $this->hata=True;
        }
    }
    
    function guvenlik($g){ // sql injection için
        return mysqli_real_escape_string($this->durum,$g);
    }
    
    function suz($a){ // form verilerinde vs.. html kodlarını kapatmak için
        return htmlspecialchars($a,ENT_QUOTES,"UTF-8");
    }
    
    function gor($a){ // kayıt seçip, döndürme
        if (empty($this->durum)){ // Eğer bağlantı yoksa hataya ata
            $this->hatalar[] = mysqli_error($this->durum);
            $this->hata = True;
            return false;
        }
        
        $this->sor = @mysqli_query($this->durum,$a); // yollanan sorguyu veritabanı sorgusuna çevirip, sor değişkenine o şekilde atıyoruz
        
        if($this->sor===False){ // eğer sorguda hata çıkarsa hata ekle
            $this->hatalar[] = mysqli_error($this->durum);
            $this->hata = True;
            return false;
        }
        
        $sonuclar=array(0=>'Sonuçlar;'); // sonuçlar 1 den başlasın diye 0'a sonuçlar ekledim
        while ($g = mysqli_fetch_object($this->sor)) { // sorguya göre değerler çekiliyor
            $sonuclar[] = get_object_vars($g); // hepsi sonuçlar'a aktarılıyor
        }
        $this->kacsonuc = count($sonuclar)-1; // 0 ıda sayacağımız için toplamdaki sonuçtan 1 çıkarıp kacsonuç varsa ekliyoruz (evet rowss ilede yapılabilirdi)
        mysqli_free_result($this->sor); // sorguyu boşalttık
        return $sonuclar; // sonuçları yolladık
    }
    
    function sql($a){ // update , delete, insert, drop table vs.. gibi tek komutluk sorgular için fonksiyon
        if (empty($this->durum)){ // bağlantı yoksa hata
            $this->hatalar[] = mysqli_error($this->durum);
            $this->hata = True;
            return false;
        }
        if(!mysqli_query($this->durum,$a)){ // veritabanı sorgusu yap, çalışmazsa hata
            $this->hatalar[] = mysqli_error($this->durum);
            $this->hata=True;
        }
    }
    
    function hata(){
        if($this->hata=True){ // eğer hata varsa
            $hatasay = sizeOf($this->hatalar); // kaç hata var
            if($hatasay>0){
                echo $hatasay,' hata bulunmuştur.<br><br><b>Hatalar</b>;<br>';
                foreach($this->hatalar as $hata){ // hataları tek tek yazdırıyoruz
                    echo '-',$hata,'<br>';
                }
            }
        }
    }
    
    function sonuc(){
        $this->hata();
    }
    
    function __destruct(){ // sınıf kapatılırken veritabanı bağlantısını kapatıyoruz
        if( $this->durum ){
            mysqli_close($this->durum);
        }
    }
}
?>

 

Revise this Paste

Parent: 32469
Your Name: Code Language: