Forumda yenilikler devam etmektedir , çalışmalara devam ettiğimiz kısa süre içerisinde güzel bir görünüme sahip olduk daha iyisi için lütfen çalışmaların bitmesini bekleyiniz. Tıkla ve Git
x

PHP veritabanı sınıfı

admin

(¯´•._.• Webmaster •._.•´¯)
Yönetici
Modaratör
Katılım
Ara 27, 2022
Mesajlar
212
Etkileşim
3,891
Puan
0
Yaş
35
Konum
Adana
Web sitesi
forumdas.com.tr
F-D Coin
3,886
Şuan hali hazırda bir sürü PHP veritabanı sınıfı mevcut. Bunlardan bir kaçını saymak gerekirse; , , . 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 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.

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

Ekli dosyalar

  • veritabani_sinifi.zip
    1.4 KB · Görüntüleme: 1

Similar threads

Daha önce şu yazıda HTML’de checkbox ve radio button kullanımı örneğini göstermiştim. Fakat checkbox’un HTML ve PHP ile kullanımı normal form elemanlarından biraz farklı. Checkbox olayını iki farklı şekilde kullanabiliriz, birincisi sıkca gördüğümüz tek bir checkbox ile şartları kabul etme...
Cevaplar
0
Görüntüleme
518
  • Kilitli
*** *** Gizli metin: Gizli metni görüntülemek için yeterli hakka sahip değilsiniz. Forum konusunu ziyaret edin! *** güle güle kullanın ;)
Cevaplar
21
Görüntüleme
304
  • Kilitli
*** *** Gizli metin: Gizli metni görüntülemek için yeterli hakka sahip değilsiniz. Forum konusunu ziyaret edin! *** İSTEDİĞİNİZ KOD OLURSA ÖZELDEN YAZABİLİRSİNİZ PAYLAŞIRIM
Cevaplar
55
Görüntüleme
577
  • Kilitli
<?php // Veritabanı bağlantısı $db = new PDO("mysql:host=localhost;dbname=log", "root", ""); // Tablo adı $tableName = 'requests'; // Sorgu limiti $limit = 1000; // Kullanıcının IP adresi $user_ip = $_SERVER['REMOTE_ADDR']; // Bugünün tarihi (Y-m-d formatında) $today = date('Y-m-d'); //...
Cevaplar
1
Görüntüleme
241
PHP çalışmalarında kullanabileceğin işe yarar ve alternatif fonksiyonlarla tanışmaya hazır mısın? İçerikleri detaylı yönetmek, tarih saat yazdırmak, bir PHP dosyasına farklı dosyalar dahil etmek, rastgele rakamlar üretmek ve daha bir çok alanda işlemler yapmamızı sağlayan birbirinden acayip...
Cevaplar
0
Görüntüleme
492
858,281Konular
977,993Mesajlar
26,272Kullanıcılar
creaXRSon üye
Üst Alt