PHP MYSQLI-PDO STORED PROCEDURE (SAKLI YORDAM) KULLANIMI

PHP MYSQLI-PDO STORED PROCEDURE (SAKLI YORDAM) KULLANIMI

Tarhi : 16-02-2017 09:50:23 | Yazar : ÇAĞLAR BOSTANCI

PHP MYSQLI-PDO STORED PROCEDURE (SAKLI YORDAM) KULLANIMI

SQL için derlenmiş şablonlara Stored Procedure(Saklı Yordam) denir. Derlendikleri ve optimize dildikleri için
SQL hataların bulunmamaktadır. Bundan dolayı daha az kaynak kullanırlar ve normal bir SQL sorgusuna göre daha
hızlı çalışırlar. Saklı yordamlar veritabanından oluşturulduktan sonra üçüncü bir yazılımdan veya diğer bir
saklıyordam tarafından çağırılabilirler. Tek bir yazılım diline bağlı değillerdir. Saklı yordam oluşturmak için
CREATE PROCEDURE komutu kullanılır. Asıl SQL’lin bulunduğu bölüm BEGIN ve END blogu arasına yazılır. İç içe
BEGIN ve END blok uygulaması yapılabilir.
BEGIN – END:

PARAMETRESİZ SAKLI YORDAM

DELIMITER >> Ayraç görevi üstlenir. Standart SQL ayracı olan ; değiştirmeye yarar. Saklı yordam içinde biren fazla SQL’i bir birinden ayırmaya yarar.
PARAMETRELİ SAKLI YORDAM

SAKLI YORDAM PARAMETRELERİ:

INTO deyimi dışarı değişken gönderilmesini sağlar. Örnekte INOUT ile ad adında bir değişken SQL komutuna dahil
edilecek ve aynı zamanda ad adında veri tabanından gelen değer dışarı verilecek.
IN OUT:

INOUT:

SAKLI YORDAMLARIN ÇAĞIRILMASI;
Saklı yordamı kaydetmek için phpMyAdmin penceresinden çalışmak istediğiniz veritabanını seçip SQL penceresine
tıklayarak aynen bir SQL penceresinden saklı yordamı çağırıp kullanabilirsiniz. Saklı yordamı çağırıp kullanmak için
CALL fonksinyonu kullanılır.
Saklı yordamın çağırılması örnek:

SAKLI YORDAM KARAKTERİSTİK ÖZELLİKLERİ
CONTAINS SQL >> Veri okuma veya yazma ifadelerini içermediğini gösterir.
NO SQL >> Hiç bir sql ifadesi içermediğini gösterir.
READS SQL DATA >> Sadece okuma SELECT ifadeleri içerdiğini gösterir.
MODIFIES SQL DATA >> Sadece ekleme ve silme (INSERT veya DELETE) ifadeleri içerdiğini gösterir.
DETERMINISTIC >> Aynı parametrelerle her çağırıldığında aynı sonucu üreten sorgular için tanımlanır.
NON DETERMINISTIC >> Aynı parametrelerle her çağırıldığında farklı sonuç üreten sorgular için tanımlanır.

MYSQLI ve PDO İLE SAKLI YORDAM OKUMA
MySqli sınıfında multi_query() metodu ile çoklu sql sorgusu çalıştırılmaktadır. Saklı yordamdaki sql sorguları tordam
içinde çalıştırılır ve sonucları döndürür. Sonuçları elde etmek için php mysqli sınıfından yararlanıyoruz.
TEKLİ MYSQLI YORDAM

TEKLİ SAKLI YORDAM PDO

 

ÇOKLU MYSQLI SAKLI SQL YORDAM
Çoklu saklı yordamda sql gönderimi multi_query() fonksiyonu ile yapılır. Veriler store_result() ile ilk sql
alınır next_result() ile ikinci sql sorgusunun verileri alnır.

Ekran Çıktısı:
AHİ EVRÂN-I VELİ – Gelen gelsin saadetle, giden gitsin selametle.
40 – KIRŞEHİR – ÇİÇEKDAĞI
40 – KIRŞEHİR – KAMAN
40 – KIRŞEHİR – MERKEZ
40 – KIRŞEHİR – MUCUR
40 – KIRŞEHİR – AKPINAR
40 – KIRŞEHİR – AKÇAKENT
40 – KIRŞEHİR – BOZTEPE
ÇOKLU SAKLI YORDAM PDO

Ekran Çıktısı:
EKRAN ÇIKTISI
GÜNÜN SÖZÜ:
AHİ EVRÂN-I VELİ Gelen gelsin saadetle, giden gitsin selametle.
KIRŞEHİR 1254 ÇİÇEKDAĞI
KIRŞEHİR 1429 KAMAN
KIRŞEHİR 1472 MERKEZ
KIRŞEHİR 1529 MUCUR
KIRŞEHİR 1754 AKPINAR
KIRŞEHİR 1869 AKÇAKENT
KIRŞEHİR 1890 BOZTEPE