MySQL ve PHP İlişkisi
MySQL, PHP ile sıkça kullanılan bir veritabanı sistemidir. PHP, MySQL veritabanına bağlanarak veri ekleme, güncelleme, silme ve sorgulama gibi işlemleri gerçekleştirebilir. Bu ders notları, PHP ile MySQL veritabanına bağlanma ve sorguları yönetme konularını kapsamaktadır.
1. MySQL Bağlantısı Kurma
$servername = "localhost";
$username = "kullanici_adiniz";
$password = "sifreniz";
$database = "veritabani_adiniz";
// MySQL bağlantısı oluşturma$baglanti = new mysqli($servername, $username, $password, $database);
// Bağlantı kontrolü
if ($baglanti->connect_error) {
die("Bağlantı hatası: " . $baglanti->connect_error);
} else {
echo "Bağlantı başarılı!";
}
2. Veri Ekleme (INSERT) İşlemi
$adi = "John";
$soyadi = "Doe";
$email = "john.doe@example.com";
// Veri ekleme sorgusu$sql = "INSERT INTO kullanici_tablosu (adi, soyadi, email) VALUES ('$adi', '$soyadi', '$email')";
// Sorguyu çalıştırma
if ($baglanti->query($sql) === TRUE) {
echo "Yeni kayıt başarıyla eklendi.";
} else {
echo "Hata: " . $sql . "<br>" . $baglanti->error;
}
// Bağlantıyı kapatma
$baglanti->close();
3. Veri Sorgulama (SELECT) İşlemi
// Veri sorgulama sorgusu
$sql = "SELECT id, adi, soyadi FROM kullanici_tablosu";
$result = $baglanti->query($sql);
// Sorgu sonuçlarını kontrol etmeif ($result->num_rows > 0) {
// Verileri ekrana yazdırma
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " - Ad: " . $row["adi"]. " " . $row["soyadi"]. "<br>";
}
} else {
echo "Sonuç bulunamadı.";
}
// Bağlantıyı kapatma
$baglanti->close();
4. Veri Güncelleme (UPDATE) İşlemi
$kullanici_id = 1;
$yeni_adi = "Jane";
// Veri güncelleme sorgusu$sql = "UPDATE kullanici_tablosu SET adi='$yeni_adi' WHERE id=$kullanici_id";
// Sorguyu çalıştırma
if ($baglanti->query($sql) === TRUE) {
echo "Kayıt başarıyla güncellendi.";
} else {
echo "Hata: " . $sql . "<br>" . $baglanti->error;
}
// Bağlantıyı kapatma
$baglanti->close();
5. Veri Silme (DELETE) İşlemi
$kullanici_id = 2;
// Veri silme sorgusu$sql = "DELETE FROM kullanici_tablosu WHERE id=$kullanici_id";
// Sorguyu çalıştırma
if ($baglanti->query($sql) === TRUE) {
echo "Kayıt başarıyla silindi.";
} else {
echo "Hata: " . $sql . "<br>" . $baglanti->error;
}
// Bağlantıyı kapatma
$baglanti->close();
6. Güvenlik İpuçları
- SQL Enjeksiyonu Önleme: Kullanıcı girişi veya diğer dış etkileşimlere karşı güvenlik önlemleri alınmalıdır. Prepared Statements veya Parameterized Queries kullanımı önerilir.
// SQL Enjeksiyonuna karşı güvenli sorgu
$adi = $baglanti->real_escape_string($adi);
$soyadi = $baglanti->real_escape_string($soyadi);
$email = $baglanti->real_escape_string($email);
$sql = "INSERT INTO kullanici_tablosu (adi, soyadi, email) VALUES ('$adi', '$soyadi', '$email')";- Bağlantı Güvenliği: Veritabanı bağlantısı için güvenli protokoller (örneğin, SSL) kullanılmalıdır.