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