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