PHP veritabanı sınıfı

Nursen

Paylaşımcı Üye
Katılım
24 Nis 2020
Mesajlar
1,046
Beğeniler
5
Ş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.



1

$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.



1

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


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



1
2
3
4
5
6
7

$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.



1

$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.



1

$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.



1

$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.



1
2
3

$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.



1

$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.



1
2
3
4
5

$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.



1
2

$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.



1

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.



1
2
3
4
5
6
7
8
9
10

$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.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular

Üst