PHP Stored Procedure (Saklı Yordam)

Stored Procedure (Saklı Yordam), MySQL’de bir veya birden fazla SQL ifadesini içeren, yeniden kullanılabilir bir SQL betiğidir. Bu, özellikle PHP ve MySQL ile çalışırken tekrar eden işlemleri kolaylaştırır ve kodunuzu daha düzenli hale getirir.

1. MySQL’de Stored Procedure Oluşturma

Örnek bir prosedür oluşturalım. Bu prosedür, bir tablodan belirli bir kategorideki ürünleri listeleyecektir.

DELIMITER $$
CREATE PROCEDURE GetProductsByCategory(IN category_id INT)
BEGIN
SELECT * FROM products WHERE category_id = category_id;
END $$
DELIMITER ;
  • IN category_id: Giriş parametresidir.
  • SELECT * FROM products WHERE category_id = category_id;: Veritabanında sorgu çalıştırır ve sonucu döndürür.

2. PHP ile Stored Procedure Çağırma

Stored Procedure çağırmak için PDO veya MySQLi kullanılabilir. Burada PDO ile bir örnek yapılmıştır.

<?php
// Veritabanı bağlantısı
$dsn = 'mysql:host=localhost;dbname=my_database;charset=utf8mb4';
$username = 'root';
$password = '';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Stored Procedure çağırma
$category_id = 1; // Örnek kategori ID
$stmt = $pdo->prepare("CALL GetProductsByCategory(:category_id)");
$stmt->bindParam(':category_id', $category_id, PDO::PARAM_INT);
$stmt->execute();
// Sonuçları döndürme
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row) {
echo "Product ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
}
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
?>
  • CALL GetProductsByCategory(:category_id): Stored Procedure’ü çağırır.
  • bindParam: Parametre bağlamak için kullanılır.

3. MySQLi ile Stored Procedure Çağırma (Alternatif)

<?php
$mysqli = new mysqli("localhost", "root", "", "my_database");
if ($mysqli->connect_error) {
die("Bağlantı hatası: " . $mysqli->connect_error);
}
$category_id = 1; // Örnek kategori ID
$query = "CALL GetProductsByCategory(?)";
if ($stmt = $mysqli->prepare($query)) {
$stmt->bind_param("i", $category_id);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "Product ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
}
$stmt->close();
}
$mysqli->close();
?>

Stored Procedure Kullanım Avantajları

  1. Performans: Sorgular önceden derlenir ve saklanır.
  2. Yeniden Kullanılabilirlik: Aynı kodu farklı yerlerde kullanabilirsiniz.
  3. Güvenlik: Parametreler kullanıldığında SQL Injection riskini azaltır.
  4. Bakım Kolaylığı: SQL sorgularını prosedürler halinde düzenleyebilirsiniz

Related Posts

Fonksiyonlar Ile Vize Final Ortalaması Alıyoruz.

Bu kod, kullanıcının vize ve final notlarını girmesini bekleyen bir form oluşturur. Form gönderildiğinde, girilen notlar kullanılarak not ortalaması hesaplanır. Ardından, bu not ortalaması harf notuna dönüştürülür ve tüm sonuçlar ekrana yazdırılır.

Örnek Bizden geliştirmek sizden

Daha Fazlası..

Devam et..

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.

You Missed

    PHP Stored Procedure (Saklı Yordam)
      JavaScript ile Arama Filtreleme fonksiyonu için bir örnek
        Matematik de e Sayısı – Euler Sayısı “e” Tüm Detaylar
          Matematik de i harfinin önemini ve neden kullanıldığını öğrenelim
            Fonksiyonlar Ile Vize Final Ortalaması Alıyoruz.
              PHP de 4 işlem