Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)

Paste

Pasted as PHP by zumsuk ( 15 years ago )
<?php header('Content-Type: text/html; charset=utf-8');
//  /--------------------------------------------------------------\
//  |         Bu sınıf Emre Çetin tarafından kodlanmıştır          |
//  |             iletişim : ayro26@gmail.com                      |
//  |         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: