Php 8 MySQLi ile Prepared Sorgular

Php 8 MySQLi ile Prepared Sorgular

PHP 8 ile MySQLi kullanarak prepared sorgular (hazırlanmış sorgular) kullanmak, SQL enjeksiyonuna karşı koruma sağlamak ve performansı artırmak için etkili bir yöntemdir. İşte adım adım nasıl yapabileceğinizi açıklayalım:

1. MySQLi Bağlantısı

Öncelikle veritabanınıza bağlanmalısınız. Aşağıda, MySQLi ile nasıl bağlantı kurabileceğinizi gösteren bir örnek verilmiştir:

$servername = "localhost"; $username = "kullanici_adiniz"; $password = "sifreniz"; $dbname = "veritabani_adiniz"; // Bağlantıyı oluştur $conn = new mysqli($servername, $username, $password, $dbname); // Bağlantıyı kontrol et if ($conn->connect_error) { die("Bağlantı başarısız: " . $conn->connect_error); }

2. Prepared Sorgu Oluşturma

Prepared sorgular, SQL komutunu ve parametreleri ayrı olarak tanımlamanıza olanak tanır. Aşağıdaki örnekte, bir kullanıcıyı veritabanına eklemek için hazırlanan bir sorgu gösterilmektedir:

// Prepared sorgu oluştur $stmt = $conn->prepare("INSERT INTO kullanicilar (isim, email) VALUES (?, ?)"); // Değerleri bağla $stmt->bind_param("ss", $isim, $email); // Değerleri ata $isim = "Ahmet"; $email = "ahmet@example.com"; // Sorguyu çalıştır $stmt->execute(); // Sorgunun başarılı bir şekilde çalışıp çalışmadığını kontrol et if ($stmt->affected_rows > 0) { echo "Yeni kayıt başarılı!"; } else { echo "Kayıt başarısız!"; } // Sorgu nesnesini kapat $stmt->close();

3. Prepared Sorgu ile Veri Okuma

Veri okumak için de prepared sorgular kullanılabilir. Aşağıda, bir kullanıcının bilgilerini çekmek için bir örnek verilmiştir:

// Kullanıcıyı seç $stmt = $conn->prepare("SELECT isim, email FROM kullanicilar WHERE id = ?"); // Değerleri bağla $stmt->bind_param("i", $id); // Değeri ata $id = 1; // Sorguyu çalıştır $stmt->execute(); // Sonuçları al $result = $stmt->get_result(); // Sonuçları kontrol et if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { echo "İsim: " . $row["isim"] . " - Email: " . $row["email"] . "<br>"; } } else { echo "Sonuç bulunamadı."; } // Sorgu nesnesini kapat $stmt->close();

4. Bağlantıyı Kapatma

İşlemler tamamlandıktan sonra veritabanı bağlantısını kapatmayı unutmayın:

$conn->close();

Özet

Prepared sorgular, güvenliği artırmak ve performansı optimize etmek için harika bir yöntemdir. MySQLi ile hazırlanan sorgular, parametrelerin bağlanması ve sorguların çalıştırılması işlemlerini ayrı hale getirerek SQL enjeksiyonuna karşı etkili bir koruma sağlar.



Yorum Ekle

Üzerine gel