mysqli sınıfı ile stored procedure kullanımı

mysqli: Mysql veritabanına bağlanmak ve yönetmek için kullanılan, henüz yeteri kadar yaygınlaşmamış olsa da, kesinlikle tavsiye ettiğim bir sınıftır. Bu sınıf sayesinde mysql veritabanına daha hakim, daha profosyonel betikler yazılabilir.

stored procedure:  yerleşik yordam gibi benim tuhaf gördüğüm çevirileri olsa da, "kayıtlı yöntem" şeklinde çevirmemizde sakınca görmediğim, çok sık yaptığımız işlemleri kolaylaştırmak adına yazdığımız sorgu kümesidir. Prosedürlerin return koumutunu kullanmadığını göz ardı edersek, php deki fonksiyonlarla denk görebilirsiniz.

Ben de bugün önemli gördüğüm bu iki konuya değinmek istedim.


Fazla uzatmadan kodlara geçelim.

PHP kodu
  1. <?
  2. $mysqli = mysqli_init(); // Sınıfı oluştur
  3. $mysqli->real_connect('localhost','root','123456','deneme');
  4. // localhost adresindeki deneme veritabanına, root kullanıcısı ve 123456 şifresi ile bağlan
  5.  
  6. $mysqli->real_query('DROP TABLE IF EXISTS ogrenci') or die('Tablo Sil: '.$mysql->error);
  7. // Daha önce ogrenci adında tablo oluşturulmuşsa kaldır
  8.  
  9. $mysqli->real_query ('
  10. CREATE TABLE ogrenci (
  11. numara INT(10) default \'0\',
  12. isim VARCHAR(50),
  13. PRIMARY KEY (numara)
  14. )
  15. ') or die('Tablo oluştur: '.$mysqli->error);
  16. // numara ve isim alanlarından oluşan ogrenci tablosunu oluştur
  17.  
  18. $mysqli->real_query('INSERT INTO ogrenci VALUES (041262052,\'Gündüz Can YILMAZ\'),(041262030,\'Ali KANKALLI\')') or die('INSERT: '.$mysqli->error);
  19. // veritabanına beni ve Ali'yi ekle :)
  20.  
  21. $mysqli->real_query('DROP PROCEDURE IF EXISTS denemesp')or die('SP Sil: '.$mysql->error);
  22. // denemesp adında prosedür varsa sil
  23.  
  24. $mysqli->real_query ('
  25. CREATE PROCEDURE denemesp(no INT(11))
  26. BEGIN
  27. SELECT isim FROM ogrenci WHERE numara=no;
  28. END
  29. ') or die('SP Oluştur: '.$mysqli->error);
  30. // numarasıyla çağırdığımda, isim alanını seçen denemesp prosedürünü oluştur
  31.  
  32. $mysqli->real_query("CALL denemesp(041262052)") or die('SP Çağır: '.$mysqli->error);
  33. // denemesp prosedürünü numaramla çağır
  34.  
  35. $sonuc=$mysqli->store_result();
  36. // Son çalışan sorgunun sonuçlarını al
  37.  
  38. $db=$sonuc->fetch_assoc();
  39. // gelen sonuçları $db adındaki diziye at
  40.  
  41. $sonuc->free_result();
  42. // sonuçları temizle
  43.  
  44. echo $db['isim'];
  45. // Çıktı: Gündüz Can YILMAZ
  46.  
  47. ?>

Bu örnek basit bir amaç için yazıldığından, sizin için çok cazip gelmeyebilir ancak,
numarasını girdiğim öğrencinin devamsızlık bilgilerini "rapor" tablosuna kaydet,
notlarını ve telefon numarasını "sms" tablosuna kaydet,
girmediği sınavları "uyarı" alanına kaydet,
geçtiği dersleri "ogrenci_alacak_ders" tablosundan sil
...

şeklinde çoklu amaç güden işlemlerde stored procedure'ler ve örnekte hiç kullanmadığımı şimdi farkettiğim mysqli->multi_query fonksiyonu size kolaylık sağlar.

NOT: mysqli->init() şeklindeki sınıf kullanımlarını mysqli_init() olarak fonksiyon yöntemi ile de kullanabilrisiniz. Aynı şey, mysql_real_query mysqli_free_result, mysqli_fetch_assoc ve diğerleri için de geçerlidir

mysqli sınıfı ile stored procedure kullanımı Oy Sayısı: 19 Puan: 8.00/ 10.00

Etiketler

php stored procedure , mysqli kullanimi , stored procedure silme , mysqli , mysqli stored procedure , mysql stored procedure kullanimi , mysqli nedir , mysql stored procedure , php mysql stored procedure , php mysqli ,

Henüz bu yazıya yapılmış bir yorum yok



Yorumunuz