ezSQL Veritabanı Sınıfı #2

in #utopian-io7 years ago (edited)

Ne Öğreneceğim?

  • ezSQL Veritabanı Kurulumu
  • ezSQL Kullanımı
  • ezSQL Değişkenleri
  • ezSQL Debug ve Önbellekleme

Gereksinimler

  • MySQL Server
  • ezSQL Eklentisi

Zorluk

  • Orta Düzey

ezSQL Logo.gif

$DB->QUERY( )

Bu metod, veritabanına herhangi bir SQL deyimi gönderip çalıştırılmasını sağlamak amacıyla kullanılır. Metot, SQL deyimini çalıştırdıktan sonra boolean (doğru/yanlış) bir ifade döndürür. Gönderilen SQL deyimi başarılı olarak çalıştırılmış ise true, aksi halde false değeri döndürür. Bu nedenle genellikle INSERT, UPDATE ve DELETE gibi işlemler için kullanılır.

Yeni bir PHP dosyası oluşturarak aşağıdaki komutları yazın ve kayit_ekle.php olarak çalıştırın.

<?php
$sonuc = $db->query("INSERT INTO kimlik VALUES (NULL, 'Sedat Yıldız', 'İzmir')");
if ($sonuc) {
echo "Kayıt başarıyla eklenmiştir.";
} else {
echo "Bir hata oluştu";
}
?>

Örnekte $db->query( ) metodu kullanılarak gönderilen SQL sorgusunu veritabanına işlettik ve sonucu $sonuc isimli değişkene atadık. Bu metot true ya da false değeri döndüreceğinden basit bir IF koşulu ile işlemin gerçekleştiğini belirten mesaj yazdırdık. Zaten işlem gerçekleşmemiş olsaydı ezSQL hata raporu oluşturarak hatanın nedenini ekrana basacaktı.

DB->GET_ROW( )

Veritabanından tek bir satır çekmek için kullanılır. SQL deyimi çalıştırıldığında oluşturulan sonuçlar object veri tipinde döndürülür. Eğer istenen kayıt tabloda mevcut değilse, boş bir değer (null) döndürülür.

<?php
$sonuc ? $db->get_row("SELECY id, adsoyad FROM kimlik where id = 3");
echo $sonuc ->id . " nolu kaydın adı soyadı " . $sonuc->adsoyad ;
#Sonuç: 3 nolu kaydın adı soyad Sedat Yıldız
?>

Yukarıdaki örnekten anlaşılacağı üzere $db->get_row( ) ile işlenen SQLdeyimi gerçekten de object veri tipinde bir sonuç döndürdü. Sınıflar konusunda da olduğu üzere, object veri tiplerine erişmek için $nesne->özellik şeklinde kullanılıyor. ezSQL kütüphanesi de zaten nesneye dayalı programlama mantığı ile hazırlanmıştır.

Eğer $db->get_row( ) metodunu SQL hazır deyimleri ile birlikte kullanmanız gerekirse, SQL bölümünde de yer alan alias (sütun adlarına AS deyimi ile takma ad verme) kullanılması önerilir. Aşağıda bu konuyla ilgili örnek yer almaktadır. COUNT hazır fonksiyonu ile tabloda bulunan kayıt sayısı bulunuyor ve bu sonuç toplam_kayit olarak adlandırılıyor. Bu şekilde kullanılmasının amacı object veri tipinden hangi özelliğin seçileceğinin tam olarak bilinmesi içindir.

<?php
$sonuc = $db->get_row("SELECT COUNT(id) AS toplam_kayit FROM kimlik");
echo "Tabloda " . $sonuc->toplam_kayit . " adet kayıt bulundu. ";
#Sonuç: Tabloda 3 adet kayıt bulundu.
?>

DB->GET_VAR( )

$db->get_row( ) metodunun aksine, bir satırdan sadece bir tek bilgi almak için kullanılır. String, integer, float gibi basit tipi (var tipinde) veri döndürür. Bu yüzden bir değişkene eşitlenerek direkt sütun değeri kullanılabilir. Eğer istenen kayıt tabloda bulunamaz ise, boş değer (null) döndürülür.

<?php
$toplam = $db->get_var("SELECT COUNT(id) FROM kimlik");
echo "Veritabanında toplam {$toplam} adet kayıt var. ";
#Sonuç: Veritabanında toplam 3 adet kayıt var.
$ad = $db->get_var("SELECT adsoyad FROM kimlik WHERE id = 2");
echo "2 nolu kaydın adı soyadı: {$ad}";
#Sonuç: 2 nolu kaydın adı soyadı: Sedat Yıldız
?>

Yukarıda $db->get_var( ) metodu ile iki farklı örnek gerçekleştirilmiştir. Birinci örnekte kimlik tablosunda bulunan kayıtların adedini döndüren SQL deyimi işlenmiş ve sonuç; $toplam değişkenine aktarılarak ekrana yazdırılmış. İkinci örnekte ise, tabloda ID numarası 2 olaran kaydın adsoyad bilgisini döndüren SQL deyimi çalıştırılarak sonuç $ad değişkenine yüklenmiş ve ekrana yazdırılmıştır.

Dikkat ederseniz get_row( ) metodunun aksine sıradan değişken kullanımlarında olduğu gibi, veritabanından döndürülen sonucu direkt değişken üzerinden kullanabiliyoruz.

<?php
$ad = $db->get_var("SELECT adsoyad, sehir FROM kimlik WHERE id = 2", 1);
echo "2 nolu kaydın yaşadığı şehir {$ad}";
#Sonuç: 2 nolu kaydın yaşadığı şehir İzmir
?>

Yukarıdaki örnekte ise $db->get_var( ) metoduna ikinci parametre eklenerek, SQL deyiminde talep edilen sütunlardan hangisi indiz numaralı olan sütun seçileceği belirtilmiştir. Varsayılan olarak 0 (sıfır) ayarlanan sütun ofset değeri " olarak değiştirilerek adsoyad yerine sehir sütunu seçilmiştir.

Esasında $db->get_var( ) metodu, sütun ofset parametresi ile kullanılması biraz saçma görünüyor. Çünkü zaten bu işlemi dinamik olarak ayarlamıyoruz ve gereksiz yere kullanılmayan sütunu seçmek, zaten veritabanı optimizasyonu için ters düşüyor.

İkinci dersimiz tamamlanmıştır, bir sonraki dersimizde debug ve dump metotlarını yazarak devam edeceğiz. Okuduğunuz için teşekkürler.

Seri

ezSQL Veritabanı Sınıfı #1
ezSQL Veritabanı Sınıfı #2
ezSQL Veritabanı Sınıfı #3
ezSQL Veritabanı Sınıfı #4



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

@sedatyildiz, Like your contribution, upvote.

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Hey @sedatyildiz I am @utopian-io. I have just upvoted you!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Contribute more often to get higher and higher rewards. I wish to see you often!
  • Work on your followers to increase the votes/rewards. I follow what humans do and my vote is mainly based on that. Good luck!

Get Noticed!

  • Did you know project owners can manually vote with their own voting power or by voting power delegated to their projects? Ask the project owner to review your contributions!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 64778.13
ETH 2531.77
USDT 1.00
SBD 2.68