RSS

PHP veritabanı sınıfı

66 27 Aralık 2011 ~ Musa Avcı — Orta

Şuan hali hazırda bir sürü PHP veritabanı sınıfı mevcut. Bunlardan bir kaçını saymak gerekirse; ezSQL, ADOdb, MeekroDB. Hepsinin bir çok fonksiyonu ve bazı farklı özellikleri var, incelemenizi öneririm. Fakat sonuç olarak baktığımda aslında ben bunların bir çoğunu kullanmıyorum ve kod kalabalığı gibi geliyor. Bu nedenle kendi veritabanı sınıfımı oluşturma ihtiyacı duyup klasik ve basit bir sınıf hazırladım. Uzun zamandır her türlü çalışmamda kullandığım ve bundan sonraki yazılarımda da kullanacağım bir sınıftır.

Bu sınıfta temel olarak CRUD dediğimiz veri ekleme, silme, düzenleme, listeleme dışında tek bir satır alma ve tek bir veri alma işlemleri yapabiliyoruz. Benim favorilerim bu son ikisi.

MySQL’e bağlanmak

MYSQL bağlantısı oluşturmak için öncelikle mysql_connect fonksiyonu ile veritabanı bilgileri girilir, sonra mysql_select_db fonksiyonu ile kullanılacak veritabanı seçilir. Hazırladığım bu sınıfta bu iki fonksiyon yerine daha sınıfı tanımlarken bağlantıyı yapmış oluyorsun.

$vt = new vt('kullanıcı', 'şifre', 'veritabanı');

Evet bu kadar basit. Bu satırdan sonrasında $vt değişkeni üzerinden tüm veritabanı işlemlerini gerçekleştirebiliriz. Eğer MySQL hostunuz localhost haricinde ise bunun için 4. parametreyi kullanabilirsin, bu parametre varsayılan olarak localhost tanımlı.

Veri eklemek

Bunun için 2 yöntem hazırladım. Birincisi ve benim önerdiğim yöntem eklenecek verileri array ile iletmek. Bu metodda ilk parametre her zaman tablo adı olacak.

$vt->ekle('uyeler', array('ad' => 'Musa', 'soyad' => 'Avcı'));

Güzel yanı çok fazla veri ekleyeceğimiz zaman düzenli oluyor.

$vt->ekle('siparisler', array(
  'adres' => $adres,
  'fiyat' => $fiyat,
  'urun' => $urun,
  'kargo' => $kargo,
  'tarih' => time()
));

Diğer yöntem ise eklenecek verinin her değerini ayrı bir parametre olarak girmek.

$vt->ekle('uyeler', 'ad=Musa', 'soyad=Avcı');

Bu yöntemde daha az değer içeren ve array() yazmaya değmeyecek kadar kısa eklemeler için tercih edilebilir.

Bu metod her iki yöntemde de cevap olarak mysql_insert_id() değerini yani yeni eklenen satırın ID’sini döndürür. Eğer eklenmez ise de olumsuz döner.

Veri düzenlemek

Bu metod içinde 2 yöntem mevcut ve yine mantığı eklemedeki olay gibi. 3 parametreli bu metodun ilk parametresi yine tablo adı, ikinci parametre düzenlenecek değerler, son parametre ise hangi verilerin düzenleneceğini belirtecek koşul.

$vt->duzenle('uyeler', array('ad' => 'Ahmet'), array('NO' => 15)));

Bu ifade “uyeler” tablosunda NO’su 15 olan verinin “ad” değerini “Ahmet” olarak değiştir.

Her iki parametreye de birden fazla değer girerek koşul ya da düzenlenecek değer sayısını artırabilirsin.

$vt->duzenle('uyeler', 'ad="Mehmet"', 'NO=20');

Bu yöntemde eklemeden farklı olarak yazı değerleri tırnak içine almamız gerekiyor.

Veri silmek

Yine ilk parametrede tablo adı ve ikincide de koşulu giriyoruz, gayet basit. Eğer ikinci parametreyi yani koşulu girmezseniz MySQL “Truncate Table” komutunu çalıştırarak tüm tabloyu boşaltır.

$vt->sil('uyeler', array('NO' => 15));
// ya da 
$vt->sil('uyeler', 'NO=15');

Sorgu yapmak

Eğer yapmak istediğiniz düzenleme, silme ya da ekleme işlemi rutinin dışındaysa normal bir MySQL sorgusu çalıştırmak için sorgu metodunu kullanabilirsin.

$vt->sorgu('UPDATE haberler SET hit = hit + 1 WHERE NO = 37');

Tablo olarak verileri okumak

3 farklı veri okuma metodu hazırladım. Bunların başında tablo olarak çekmek var. Yani birden fazla değer içeren birden fazla içeriği göstermek için bu metodu rahatlıkla kullanabilirsin.

$uyeler = $vt->tablo('SELECT * FROM uyeler LIMIT 10');

foreach($uyeler as $uye) {
  echo $uye->NO . ' - ' . $uye->ad . ' ' . $uye->soyad . '<br/>';
}

Misalen ekranda şöyle bir çıktı oluşur:

1 - Musa Avcı
2 - Hakan Beşikçi

Tek satır veri okumak

Çekmek istediğiniz veri tek bir satırsa, örneğin sadece bir üyenin bilgisi gibi, bunun için satir metodunu kullanıyoruz. Kasaplardaki satır değil ha.

$uye = $vt->satir('SELECT * FROM uyeler WHERE NO = 1');
echo $uye->ad;

Ekranda 1 NO’lu üyenin adı yazar.

Tek bir değeri okumak

Diğer iki metoda göre en basit ve işlevsel okuma metodu bu diyebilirim. Çünkü tek bir değer okumaktan ziyade bir çok kontrol ya da sayaç işlerinde kullanılabiliyor.

echo $vt->veri('SELECT ad FROM uyeler WHERE NO = 1');

Ekranda direkt 1 NO’lu üyenin adı yazar. Bunun dışında giriş kontrol işlemlerinde ya da toplam verilere ulaşmak için kullanışı ise şöyle.

$var_mi = $vt->veri('SELECT COUNT(NO) FROM uyeler WHERE ad = "Musa"');

if($var_mi) {
  echo 'Musa adında bir üye var!';
} else {
  echo 'Musa adında bir üye yok.';
}

$toplam_uye = $vt->veri('SELECT COUNT(NO) FROM uyeler');
echo 'Toplam ' . $toplam_uye . ' adet üye var.';

Yaklaşık 100 satırlık bu sınıf ile temel olarak genel bir çok projenin rahatlıkla veritabanı yönetimi ihtiyacını karşılayacağına inanıyorum. Daha fazla beklemeden sınıfı indirip kurcalayıp kullanmaya başlamak için buraya tıklayın.

Bir başka PHP serüveninde görüşmek üzere hoşçakalın.

Etiketler:

Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.

"PHP veritabanı sınıfı" yazısı için 66 yorum yapılmış.

  1. Özkan dedi ki:

    peki bu class ta mesala bir veri insert ettiğimizde o verinin eklenip eklenmediğine göre hata mesajını neye göre vereceğiz ?

    • Musa AVCI dedi ki:

      veri ekleme başlığının son paragrafında açıkladığım gibi:

      Bu metod her iki yöntemde de cevap olarak mysql_insert_id() değerini yani yeni eklenen satırın ID’sini döndürür. Eğer eklenmez ise de olumsuz döner.

      yani şöyle kullanabilirsin:

      $eklenen = $vt-&gt;ekle('uyeler', array('ad' =&gt; 'Musa'));
      if($eklenen) {
         echo $eklenen . ' NO'lu yeni üye eklendi!';
      } else {
         echo 'Yeni üye eklenemedi.';
      }
  2. Mehmet Güder dedi ki:

    Tebrik ederim genel olarak yazılarınız açıklayıcı ve bilgilendirici çok verimli çalışmalar olmuş..
    Bu son sınıf da türkçe CRUD işlemleri yapmak isteyenler için birebir.

  3. Deniz Ufuk dedi ki:

    Yazılar için teşekkür ederim bi sorum olacak genel class larla alakalı.. class dışında oluşturduğumuz class yapısında olmayan bir fonksiyonu class içinde kullanamaz mıyız?

  4. […] sonra “PHP veritabanı sınıfı” adlı yazıyı incelemenizi tavsiye […]

  5. ali dedi ki:

    Sınıflar konusunda yeniyim ama anlatımınızı çok beğendim. yalnız bir sorum olacaktı. sayfama sınıfınızı çağırdım, sayfamın içinde de birden fazla fonksiyon var, her fonksiyon içinde yeniden $vt=new vt() diyerek yeniden tanımlamak gerekiyor heralde. başka çözüm yolu var mıdır acaba?

    • Musa Avcı dedi ki:

      ben genelde baglanti.php adında bir dosya oluşturuyorum ve bu dosyayı tüm diğer sayfalarda en başta include ediyorum, içeriğide şöyle:

      include 'vt.php';
      	
      define('vt_kullanici', 'root');
      define('vt_sifre', '123456');
      define('vt_host', 'localhost');
      define('vt', 'veritabani');
      
      $vt = new vt(vt_kullanici, vt_sifre, vt, vt_host);
      

      her yerde yeniden tanımlamak değilde bir yerde tanımlayıp onu her yere include etmen gerekiyor.

    • Musa Avcı dedi ki:

      çok pardon, sorunu tekrar okuyunca yanlış anladığımı farkettim. Bunun için fonksiyonun içerisinde global ifadesini kullanarak dışarıdaki $vt değişkenini fonksiyon içerisine ulaştırman gerekiyor. Bunu da bir örnek ile göstereyim:

      function uye_ekle($ad, $soyad) {
         global $vt; // buradan dışarıdaki vt değişkenini çağırıyoruz.
         $vt-&gt;ekle('uyeler', array('ad' =&gt; $ad, 'soyad' =&gt; $soyad));
      }
      
    • xcfgd dedi ki:

      $eklenen = $vt->ekle('uyeler', array('ad' => 'Musa'));if($eklenen) {   echo $eklenen . ' NO'lu yeni üye eklendi!';} else {   echo 'Yeni üye eklenemedi.';}

  6. yurdakul dedi ki:

    $varmi = mysql_num_rows(mysql_query("select id,kadi from uyeler where kadi='$kadi'"));

    Bu sorguyu nasıl çalıştırabiliriz bu sınıfta veritabanında varmı yokmu diye?

    • Musa Avcı dedi ki:

      son konuda bunun örneğini vermiştim:

      $var_mi = $vt-&gt;veri('SELECT COUNT(NO) FROM uyeler WHERE ad = &quot;Musa&quot;');
       
      if($var_mi) {
        echo 'Musa adında bir üye var!';
      } else {
        echo 'Musa adında bir üye yok.';
      }
      
  7. Emuman dedi ki:

    Gerçekten okadar aradım taradım böyle bir sınıf bulamadım kullanmayacağım şeyler mevcut içerisinde çoğunun. Peki:

    $vt->duzenle(‘uyeler’, array(‘ad’ => ‘Ahmet’), array(‘NO’ => 15)));

    burada nosu 15 ve sıranosu 12 olanları nasıl düzenleyebiliriz. Kısacası bunun içinde and yada or kullanabilir miyiz?

    Çalışmalarınızda başarılar diler teşekkür ederim…

    • Musa Avcı dedi ki:

      daha fazla koşul için arraya ekleme yapman gerekiyor, yani şöyle;

      $vt-&gt;duzenle(‘uyeler’, array(‘ad’ =&gt; ‘Ahmet’, 'soyad' =&gt; 'Yılmaz'), array(‘NO’ =&gt; 15, 'siraNO' =&gt; 12)));
      • Emuman dedi ki:

        Çok teşekkür ederim hızlı cevabınız için.Birşey daha sormak istiyorum:

        $vt->ekle('deneme', array(
        'ad' => $ad,
        'soyad' => $soyad,
        'metin' => $deneme
        ));

        şeklinde ekleme yaptırıyorum ve:

        if($ekle){
        echo 'eklendi';
        }else{
        echo 'eklenemedi';
        }

        gibi kontrol ettiriyorum ama veri eklenmiyor “eklenemedi yazıyor”?

        • Emuman dedi ki:

          Pardon dikkatsizliğimden kaynaklanmış 🙂

          $ekle = $vt->ekle şeklinde belirtmemişim acele ile

          tekrardan teşekkür ederim 🙂 sitenizin takipçisiyim bundan böyle…

  8. Phpci dedi ki:

    Merhaba ben sınıfla biraz oynadım:

    private $onek = “onek”; şeklinde tabloların başına önek ekledim. yani onek_tablom şeklinde oldu (prefix)

    $ekle = $this->Sorgu(‘INSERT INTO ‘.$this->onek.’_’.$tablo.’ (‘.$alan.’) VALUES (‘.$veri.’)’);

    şeklinde de veri ekleme,silme ve güncelleme fonksiyonlarını düzenlemeyi başardım. Fakat tablo olarak verileri okumak:
    $vt->tablo(‘SELECT * FROM tabloadi LIMIT 10’);

    Tek satır veri okumak:
    $vt->satir(‘SELECT * FROM tabloadi WHERE id = 1’);

    yada Tek bir değeri okumak:

    $vt->veri(‘SELECT isim FROM tabloadi WHERE id=13’);

    gibi yerlere tanımladığım private $onek = “onek”; i ekleyemedim. Ne yapmam gerek sınıf konusunda yeniyim lütfen yardımcı olun 🙁

    • Musa Avcı dedi ki:

      bunun için önce sınıf içinde tanımladığın $onek değişkenine dışarıdan ulaşabilmek için private değilde public yapmalısın. sonrasında o tip sorgularda şu şekilde kullan;

      $vt-&gt;satir('SELECT * FROM ' . $vt-&gt;onek . '_tabloadi WHERE id = 1');
  9. Gökhan Bora dedi ki:

    96. satırdaki:
    return $this->sorgu('TRUNCATE TABLE '.$tablo);

    kullanılması doğru bir yaklaşım değildir.

    biliyorsunuz “truncate” tablodaki tüm verileri sildiği gibi tablonun “AUTO_INCREMENT” değerini de sıfırlar. bir tablodaki tüm verileri silerseniz ve daha önce o tabloyla ilişkili başka bir tablo varsa ve verilerin silindiği tabloya daha sonra yeniden veri girerseniz ilişkilendirme hatasıyla karşılaşırsınız (kod hatası değil mantıksal hata).

    TRUNCATE TABLE yerinde iki satır üstteki DELETE kullanılması doğru yaklaşım olacaktır.

    105. ve 111. satırdaki addslashes’ler yerine mysql_real_escape_string kullanılması gerekiyor. addslashes sql için yeterli kaçış işlemi uygulamaz.

    • Musa Avcı dedi ki:

      sil metodu için bu durumu açıkladım:

      ilk parametrede tablo adı ve ikincide de koşulu giriyoruz, gayet basit. Eğer ikinci parametreyi yani koşulu girmezseniz MySQL “Truncate Table” komutunu çalıştırarak tüm tabloyu boşaltır.

      eğer ilişkili bir tabloyu bu şekilde silmek isterseniz sorun çıkartır, bu yöntem “TRUNCATE TABLE” kullanımının kısayolu olarak yapıldı. “AUTO_INCREMENT” değerinin sıfırlanmadan tamamını silmek istiyorsanız kendiniz bir sorgu çağırabilirsiniz.

      addslashes yerine mysql_real_escape_string kullanılabilir, dediğiniz gibi bu fonksiyon diğerinden daha kapsamlı temizleme uyguluyor. Geliştirici yorumlarınız için teşekkürler.

  10. Batuhan Göksu dedi ki:

    merhaba yaptığınız sınıf harika teşekkür ederim sınıfınızı mennuniyetle kullanıyorum yapmak istediğim birşey var checkbox ile seçilen verileri silmek istiyorum ama sizin sınıfı kullanarak bunu nasıl yaptırabilirim yardımcı olursanız sevinirim.

  11. Batuhan Göksu dedi ki:

    bunu kasdetmemiştim bunu biliyorumda sizin bu sınıfı kullanarak toplu silme işlemini nasıl yaparım onu kasdetmiştim.

    • Musa Avcı dedi ki:

      checkbox ile toplu silme olayının asıl mevzusu o yazıda anlattığım şekliyle gerçekleşiyor, veritabanı sınıfı ile alakalı olan kısım sadece en son örneğimde yazdığım mysql sorgusu. bunun için normal $vt->sorgu('...') diyebilir ya da $vt->sil('tablo', 'NO IN ( ' . $silinecekler . ' )'); diyebilirsiniz.

  12. bora dedi ki:

    merhaba,
    çoklu veri eklerken mesela
    aciklama[]
    adet[]
    fiyat[]

    bunları nasıl ekleyebiliriz

  13. bora dedi ki:

    name=”aciklama[]”
    name=”aciklama[]”
    name=”aciklama[]”

    name=”adet[]”
    name=”adet[]”
    name=”adet[]”

    name=”fiyat[]”
    name=”fiyat[]”
    name=”fiyat[]”

  14. Batuhan Göksu dedi ki:

    Merhaba veritabanına kayıtladığım zaman son id yi normalde yanlış hatırlamıyorsam last_insert_id şeklinde alıyorduk bunu sınıfı kullanırken nasıl alabilirim

  15. Batuhan Göksu dedi ki:

    Seflink İçin Yaptığım Fonksiyon İle Gelen Veriyi Örnek İnternetli ve Şarjlı Minibüsler Geliyor Bu Başlığı internetli-ve-sarjli-minibusler-geliyor Bu Şekle Ceviriyor Sizin Sınıfınız İle Kayıt İşleminde Veritabanına nternetli-ve-arjl-minib-sler-geliyor bu şekle ceviriyor 🙁

    tirnakKes fonksiyonunu kaldırmama rağmen yapıyor 🙁

    • Musa Avcı dedi ki:

      bence bu sorun karakter setleri ile alakalı. veritabanı tablonuzda ilgili değerlerin ve php dosyalarının karakter setlerini kontrol edin. ben hepsinin utf-8 olmasını öneririm.

  16. Batuhan Göksu dedi ki:

    sql tablom utf8 olarak ayarlı herşey lakin hala ynı 🙁

  17. Batuhan Göksu dedi ki:

    ayrıca utf8 ilgili birşey olmuş olsa bence diğer verilerdede problem olurdu birtek seflink yapmamda sorun oluyor 🙁

    • Musa Avcı dedi ki:

      sef link yapmak için şu fonksiyonu deneyebilir misin:

      function sef($s) {
          $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
          $eng = array('s','s','i','i','g','g','u','u','o','o','c','c');
          $s = str_replace($tr,$eng,$s);
          $s = strtolower($s);
          $s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
          $s = preg_replace('/s+/', '-', $s);
          $s = preg_replace('|-+|', '-', $s);
          $s = trim($s, '-');
         return $s;
      }
  18. Batuhan Göksu dedi ki:

    teşekkür ederim bu fonksiyon sorunsuz çalıştı

  19. Batuhan Göksu dedi ki:

    özür dilerim oldu sandım ama olmamış 🙁

  20. Gökhan Durkan dedi ki:

    Merhaba Bu Sınıfa Veritabanı Backup Alma Özelliği Koyabilmemiz Münkünmü Münkünse Nasıl Koyabiliriz. SQL Dosyasını cıktı vericek yada ftp de saklıcak.

  21. Çağrı dedi ki:

    Merhaba Musa, sınıf için teşekkürler.

    Fakat nedense ekle fonksiyonu ikikere ekliyor ve sorununu çözemedim belki benim kodlamamda bir sorun var.. Formdan gelenleri eklemek için şöyle birşey yapmaya çalışıyorum..

    function ekle(){
    		global $vt;
    
    		$slug = seola($_POST['baslik']);
    		$baslik = $_POST['baslik'];
    		$text = $_POST['text'];
    
    		$resim = resimyukle('haberresim','haberler');
    
    		$olay = $vt-&amp;gt;ekle('haberler', array('slug' =&amp;gt; $slug, 'baslik' =&amp;gt; $baslik, 'text' =&amp;gt; $baslik, 'resim' =&amp;gt; $resim));
    	
    		
    		get_template('ekle');
    		return $olay;
    
    	}
    

    get_template fonksiyonum sadece tema içinden ekle.php’yi getiriyor. içerisinde de form mevcut.

  22. Çağrı dedi ki:

    ooopps..

    Çözümü buldum… ekle.php içinde kontrol yaptırıyorum, eklendiyse veya hata varsa uyarı ver diye.. O zaman iki satır ekliyor. Fakat if-else’i bir üstteki fonksiyonumun içinde dönderdiğim zaman tek satır ekliyor…

  23. Sabri dedi ki:

    Son eklenen satırın id’sini almak için sınıfın sonuna aşağıdaki fonksiyonu ekledim. function idAl(){
    return mysql_insert_id();
    }

    $vt->idAl yaparak kullanabilirsiniz.

    • Musa Avcı dedi ki:

      bu özellik zaten sınıfın yeni veri ekleme metodunda mevcut. “Veri eklemek” başlığının son paragrafına bakınız.

      • müzeyyen dedi ki:

        Sınıftaki ekle metodundaki mysql_insert_id() değerinin her daim 0 dönmesinin sebebi return kısmındaki gizemde yatıyor.
        if($ekle) return mysql_insert_id();
        değeri
        if($ekle) return mysql_insert_id($this->baglanti);
        şeklinde değiştirilirse sorun çözülür.

  24. raisondetre dedi ki:

    hocam sql injectiondan korkmadan rahatlıkla kullanabilir miyiz sınıfınızı ilk kez sınıf olayına girecegimde cehaletimi bağışlayın lutfen 😉

    • Musa Avcı dedi ki:

      direkt sorguyu yazıp kullandığınız metodlar haricinde diğer metodlarda “addslashes” fonksiyonu ile tırnak işareti önlemlerini alıyor, bunun haricinde yine çalışmanızı sürdürürken gerekli denemeleri ve önlemleri uygulayarak devam etmekte fayda var.

  25. Kadir YILDIZ dedi ki:

    Merhabalar Musa hocam,
    üyelik kontrolü yapmak istediğimde undefined index user ve pass sorunu alıyorun. nerde hata yapıyorum acaba

    veri("SELECT * FROM admin WHERE username='$kadi' AND password='$sifre'");

    if($var_mi) {

    $_SESSION["giris"] = "true";
    $_SESSION['uye'] = $kadi;
    echo '';

    }

    else {
    echo " Hata: Lütfen Bilgilerinizi kontrol edip tekrar deneyin.
    ";
    }

    ?>

    • Musa Avcı dedi ki:

      merhabalar, paylaştığınız kod ve hata sorunu anlamamız için yeterli değil. hatanın tam metnini, hangi satırda olduğu ve o satırı da paylaşabilirseniz daha iyi yardımcı olabiliriz.

  26. Ramazan ESEN dedi ki:

    güzel bir class ancak bukadar basit kalmamalı diye düşünyürum. Mesela JOIN, LEFT, RIGHT gibi fonksiyonlarıda içermeli. teşekkürler yinede.

  27. müzeyyen dedi ki:

    Sınıfınız çok kullanışlı. Benim sorum: Sınıfta veri tabanını kapatan bir fonksiyon göremedim. bir kaç girişten sonra “too many connections” uyarısı alıyorum. Nasıl çözebilirim?
    Teşekkürler

    • Musa Avcı dedi ki:

      PHP’de mysql kapatma fonksiyonuna gerek duyulmuyor, yani zorunlu değil. Her sayfa çalışması sona erdiğinde PHP siz kapatmasanız bile otomatik olarak kapatmaktadır. Bahsettiğiniz hatayı almanızın sebebi sunucunuza olan aşırı yük ya da saldırıdan kaynaklanıyor olabilir.

      • Çağrı dedi ki:

        Peki free_result için ne öneririsiniz hocam? sınıfın içinden mi çözmeyi yoksa dışardan nasıl olur?

        • Musa Avcı dedi ki:

          bahsettiğiniz metodu ben hiç kullanmadım. araştırdığım kadarıyla eğer bir betik içerisinde çok büyük MySQL verileri içeren sorgular yapıyorsanız MySQL’in hafızasını boşaltıp yeni sorgulara yer açmak için faydalı olabilir. Fakat eğer çok büyük verilerle çalışmıyorsanız kullanmanıza pek gerek yoktur.

          Asıl sorunuza gelince isterseniz sınıf içerisine böyle bir metod dahil edebilirsiniz.

  28. Yusuf dedi ki:

    “Sorgu yapma” basligi altindaki örnekte “update” fonksiyonu kullanilmis. “query” olmayacakmiydi?
    Selamlar

    • Musa Avcı dedi ki:

      sorgu yapma başlığında örnek amaçlı “update” yani güncelleme sorgusu yapmayı gösterdim, sorgu metodunu kullanarak istediğiniz SQL sorgusunu yapabilirsiniz.

  29. Müzeyyen dedi ki:

    Selamlar; Aynı domaindeki bir veri tabanından diğerine aktarım yapmam gerekiyor. Fakat sadece birine ulaşabiliyorum. Sanırım sorun “mysql_select_db”. Sınıfa nasıl bir ekleme yapmalıyım ??? Teşekkürler

    • Müzeyyen dedi ki:

      Biraz kendim sordum kendim cevapladım gibi oldu ama bu problemle karşılaşan arkadaşlara yardımcı olması açısından bilgiyi paylaşayım:
      Sınıftaki bağlantı parametreleri
      $this->baglanti = mysql_connect($host, $kullanici, $sifre) or die(‘MYSQL ile bağlantı kurulamadı’);
      şeklindeydi. mysql_connect için bir dördüncü parametre sorunu çözdü
      $this->baglanti = mysql_connect($host, $kullanici, $sifre, TRUE) or die(‘MYSQL ile bağlantı kurulamadı’);

      ilgilenen arkadaşlara yardımcı olur umarım.

  30. yunus dedi ki:

    merhaba, sınıf çok güzel olmuş fakat sormak istediğim bir şey var kayıt ekleme işlemini array ile yapıyorum ve aşağıdaki gibi bir arrayım var

    $telefon=array(
    “nokia”=>335,
    “Sony”=>250,
    “Samsung”=>200,
    “LG”=>250
    );

    örnek olarak nokia ya gelen value yu x() fonksiyonundan samsung tan gelen value yu sef() fonksiyonundan geçirmem gerekiyor bazılarını da direkt eklemem gerekiyor bunun ayrımını sınıf içinde nasıl yapabilirim?

  31. Selim dedi ki:

    Çok teşekkürler üstad, gerçekten başarılı olmuş.

  32. Mustafa dedi ki:

    Buna birde memcache eklense süper olur 🙂

  33. Emre dedi ki:

    merhabalar, öncellikle çok teşekkür ederim mükemmel anlatmışsınız. Benim bu konu ile ilgili sorum yok fakat öğrenmek istediğim bir takım ifadeler var. Örnekse ?, =>, -> gibi operatörler görmeye başladım makalelerde, bununla ilgili bir makale yazarmısınız veya bir açıklama yapar mısınız?

  34. Bulut Sunucu dedi ki:

    Merhabalar,

    Öncelikle bu pratik sınıf için teşekkürler.

    Makalenize aynı anda birden fazla veri çekme ekleme gibi bilgileride eklemeniz yararlı olacaktır.

    Saygılar.

  35. Kadir Gün dedi ki:

    duzenle metodu için koşul parametresini boş gönderemiyoruz. örneğin;
    $vt->duzenle(‘kisiler’, array(‘ad’ => ‘Kadir’));
    veya
    $vt->duzenle(‘kisiler’, array(‘ad’ => ‘Kadir’), ”);

    iki şekilde de hata veriyor. tablodaki tüm verileri güncellemek için bu sorgu çalıştırılması gerekiyor. duzenle metodu için koşul varsa “where” sorgusunu eklemesi gerek.

  36. örsan dedi ki:

    merhaba ilk fonksiyon yapıcı fonksiyon yanı class başka sayfada oluşturulup çağrıldığında çalışması gerekiyor kendiliğinden. ama henüz belirlenmemiş vt fonkisyonunun parametreleri var nasıl oluyor. çalışması için parametre mi bekliyor acaba kendiliğinden onu merak ettim.

  37. örsan dedi ki:

    birde bazı fonksiyonları anlayamadım acaba neden fonkisyon içinde aynı fonksiyon var. mysql_query ile sorgu fonksiyonu aynı mesela sadece iç içe

  38. can dedi ki:

    bloglara pek yazı yazmam ama senin blog bir başka dostum..
    bu veri alma düzenleme silme işlemlerini form kullanarak naısl yapabiliriz? bu konuda aydınlatabilir misin?
    iyi çalışmalar

  39. Ramazan dedi ki:

    Mysql komutlarını Mysqli ye çevirebilirmisin acaba . yeni php sürümüyle hata veriyor.

  40. mert dedi ki:

    mysql veri tabanına bağlanırken yazdığımız $vt= newvt(‘kullanıcı’, ‘şifre’, ‘veritabanı’); newvt yerine localhost yazacağız öyle değilmi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir