QAds
12 Ay Taksit
Apple iPad 64gb Wi-Fi
649 TL
Apple iPad 16gb Wi-Fi 3G
579 TL
Coby 2.8-Inch LCD Touchscreen Video MP3 Player
52.49 TL
Apple iPad 32gb Wi-Fi
549 TL
:: ANASAYFA » Stored Procedures » Stored Procedure
 
Stored Procedure

Database ile ilgili bir işlem yapmak istediğimizde tek yapmamız gereken sorgu göndermektir. Fakat bazen yapmak istediğimiz işlem öncesi bazı kontrol işlemleri de yapmak isteriz ve bu yüzden aynı anda birden fazla sorgu göndermek zorunda kalabiliriz. Böyle olunca site trafiği artıcak ve sitenin yavaşlamasına neden olacaktır. Bunu engellemek için stored procedure kullanmamız gerekir.

 

Stored Procedureler bir tür fonksiyon olup birden fazla işlemi bir sorgu ile halletmemizi sağlar. Dahası Stored Procedureler yüksek guvenlik sağlar ve sql injection tarzi saldıları da engeller.

 

Stored Procedure kullanabilmek için iyi derecede sql  bilmek gerekir. Dahası bilmeniz gereken birşey de PHPmyadmin Stored Procedure yapısını tanımamaktadır. Bu yüzden databaseinize bağlanmak ve stored procedure oluşturmak için navicat tarzı özel programlara ihtiyacınız vardır.

 

Basit bir örnek ile stored procedure yapısını inceliyelim.

 

BEGIN

SELECT * FROM tablo;

END

 

Basit bir stored procedure olan yukardaki örnek istediğimiz bir tablodan veri okumamızı sağlar. Stored procedure PHP ile çağırmak için:

Query("CALL stored_procedure_adı ()")

 

Gördüğünüz gibi bu kadar basit. Stored procedurelere veri göndererek de işlem yapmak mümkündür.

 

Üye girişi işlemini bir örnek ile göstermek gerekirse:

 

GIRIS(uid TEXT, pwd TEXT)

BEGIN

DECLARE check INT;

DECLARE cdate DATETIME;

SET cdate = NOW();

SELECT COUNT(*) as check FROM users WHERE userid = uid AND password = pwd;

IF check = 1 THEN

UPDATE users SET logindate = cdate WHERE userid = uid;

END IF;

 

SELECT check;

END

 

Bu stored procedure'ü açıklamak gerekirse kullanıcı adı ve şifresini stored procedure'ümüze göndermemiz gerekir. Stored procedure içinde değişken tanımlamak için DECLARE değişken adı ve değişken yapısınını belirtmemiz gerekir. Değişkenimize veri aktarmak için SET değişken adı = Değer. Diğer kızımlar bildiğimiz sql işlemleridir. Eğer kendi istediğimiz veriyi geri göndermek istiyorsak SELECT değer ile bunu gerçekleştirebiliriz.

 

Query("CALL GIRIS('userid','userpassword')");

 

Sonuç olarak 1 yada 0 değerini elde ederiz.

 

Dediğim gibi stored procedure kullanabilmek için iyi derece de sql bilgisi gerekir. Fakat burda farkli birşeyi daha göstermek istiyorum. Ada sayfalama için kullanılan LIMIT. Bu normal sql sorgusundan farklı olarak kullanılır.

 

ARAMA(srcText, page)

BEGIN

DECLARE src TEXT;

DECLARE p INT;

 

SET @src = srcText;

SET @p = page*10;

 

PREPARE result FROM "

SELECT * FROM table WHERE field LIKE '%?%' LIMIT ?,0";

EXECUTE result USING @src, @p;

END

 

Gördüğünüz gibi bunun için özel değişkenler tanımlamamız gerekir ve PREPARE ile sorgumuzu hazırlayıp kullanacağımız değişkenler yerine soru işareti koyarız. Daha sonra EXECUTE ile hangi soru işareti yerine hangi değişkenin kullanılacağını belirleriz.


Stored Procedures Stored Procedure Stored Procedures Stored Procedure Stored Procedures Stored Procedure
Stored Procedures Stored Procedure
YENI SORU
 
E-Mail Adresiniz
»
E-Mail adresiniz site icinde gosterilmeyecektir!  
   
 
Sorunuz
»
Lütfen kodlariniz için [CODE] belirtecini kullaniniz!  
  Add CODE Quote BOLD ITALIC Underline Align Left Align Center Align Right Add Line  
   
 
Güvenlik Kontrolü
»
Lütfen alttaki güvenlik kodunu giriniz!  
   
 
       
 
* Sorunun en kisa sürede cevaplanacaktir, muhtemelen 24 saat içinde!
Stored Procedures Stored Procedure Stored Procedures Stored Procedure Stored Procedures Stored Procedure
Stored Procedures Stored Procedure
 
Website Designer, Search Engine Optimization Expert, Ajax Developer,Developed And Designed By Mumin Celik With Using PHP, MySQL, CSS, JavaScript, Ajax And Search Engine Optimizer Sinema ve Film Rehberi Sudoku Oyunu