PHP 8 Php 8 MySQL ile PHP 2026 Güncel

Php 8 MySQLi ile Kayıt Güncelleme

6 dk okuma süresi 593 görüntülenme 2024-09-22 4.9 (14 değerlendirme)

PHP 8 ile MySQLi kullanarak MySQL veritabanındaki kayıtları güncellemek için, temel olarak bir UPDATE SQL sorgusu kullanırız. Bu işlemi daha güvenli hale getirmek için prepared statements (hazırlıklı ifadeler) kullanmak iyi bir yaklaşımdır. Aşağıda hem basit bir örnek hem de daha güvenli bir yaklaşım sunuyorum.

1. MySQLi ile Kayıt Güncelleme (Temel Yöntem)

Bu örnekte, users tablosundaki bir kullanıcının adını ve e-posta adresini güncelleyeceğiz.

Adım 1: Veritabanı Bağlantısı

<?php $servername = "localhost"; $username = "root"; $password = ""; $database = "my_database"; // Bağlantı oluştur $conn = new mysqli($servername, $username, $password, $database); // Bağlantı kontrolü if ($conn->connect_error) { die("Bağlantı başarısız: " . $conn->connect_error); } ?>

Adım 2: SQL Sorgusu ile Kayıt Güncelleme

<?php // Güncellenecek kullanıcının id'si $user_id = 1; // Yeni veriler $new_name = "Yeni Ad"; $new_email = "yeniemail@example.com"; // Güncelleme sorgusu $sql = "UPDATE users SET name='$new_name', email='$new_email' WHERE id=$user_id"; if ($conn->query($sql) === TRUE) { echo "Kayıt başarıyla güncellendi."; } else { echo "Hata: " . $conn->error; } $conn->close(); ?>

Açıklama:

  • $sql değişkeninde bir UPDATE sorgusu oluşturuyoruz. users tablosunda id değeri 1 olan kullanıcı için name ve email sütunlarını güncelliyoruz.
  • $conn->query() sorguyu çalıştırır ve güncelleme işlemi başarılıysa mesaj döner.

2. Prepared Statements ile Kayıt Güncelleme (Güvenli Yöntem)

Hazırlıklı ifadeler (Prepared Statements) SQL enjeksiyon saldırılarına karşı daha güvenli bir yöntem sunar. Bu yöntemde, veri doğrudan SQL sorgusuna eklenmeden önce yer tutucular (placeholders) kullanılır ve bu veriler bağlanır.

Adım 1: Veritabanı Bağlantısı (Aynı)

<?php $servername = "localhost"; $username = "root"; $password = ""; $database = "my_database"; // Bağlantı oluştur $conn = new mysqli($servername, $username, $password, $database); // Bağlantı kontrolü if ($conn->connect_error) { die("Bağlantı başarısız: " . $conn->connect_error); } ?>

Adım 2: Hazırlıklı İfadeler ile Kayıt Güncelleme

<?php // Güncellenecek kullanıcının id'si $user_id = 1; // Yeni veriler $new_name = "Güncellenmiş Ad"; $new_email = "guncellenmisemail@example.com"; // Hazırlıklı ifadeyi oluştur $stmt = $conn->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?"); // Verileri yer tutuculara bağla $stmt->bind_param("ssi", $new_name, $new_email, $user_id); // "s" string, "i" integer demektir // Sorguyu çalıştır if ($stmt->execute()) { echo "Kayıt başarıyla güncellendi."; } else { echo "Hata: " . $stmt->error; } // Hazırlıklı ifadeyi ve bağlantıyı kapat $stmt->close(); $conn->close(); ?>

Açıklama:

  • $stmt = $conn->prepare(): Güncelleme sorgusunu hazırlıklı ifade (prepared statement) olarak oluşturuyoruz. ? işaretleri yer tutuculardır.
  • $stmt->bind_param(): Yer tutuculara (?) bağlanacak verileri tanımlar. İlk argüman "ssi" ifadesidir: "s" string, "i" integer anlamına gelir.
  • $stmt->execute(): Hazırlanan ifadeyi çalıştırır ve güncelleme işlemi başarılıysa bir mesaj gösterir.
  • s t m t > c l o s e ( ) v e stmt->close()** ve ** conn->close(): Hazırlıklı ifadeyi ve veritabanı bağlantısını kapatırız.

3. HTML Form ile Kayıt Güncelleme

Eğer bir kullanıcıdan gelen verilerle (örneğin bir form aracılığıyla) kayıt güncellemek isterseniz, şöyle bir yapı kurabilirsiniz:

Adım 1: HTML Formu

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Kullanıcı Güncelle</title> </head> <body> <h2>Kullanıcı Bilgilerini Güncelle</h2> <form action="update_user.php" method="POST"> <label for="name">Ad:</label> <input type="text" id="name" name="name" required> <br> <br> <label for="email">Email:</label> <input type="email" id="email" name="email" required> <br> <br> <input type="hidden" name="user_id" value="1"> <button type="submit">Güncelle</button> </form> </body> </html>

Adım 2: PHP ile Güncelleme (update_user.php)

<?php $servername = "localhost"; $username = "root"; $password = ""; $database = "my_database"; // Bağlantı oluştur $conn = new mysqli($servername, $username, $password, $database); // Bağlantı kontrolü if ($conn->connect_error) { die("Bağlantı başarısız: " . $conn->connect_error); } // Formdan gelen verileri al $user_id = $_POST['user_id']; $new_name = $_POST['name']; $new_email = $_POST['email']; // Hazırlıklı ifadeyi oluştur $stmt = $conn->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?"); // Verileri yer tutuculara bağla $stmt->bind_param("ssi", $new_name, $new_email, $user_id); // Sorguyu çalıştır if ($stmt->execute()) { echo "Kayıt başarıyla güncellendi."; } else { echo "Hata: " . $stmt->error; } // Hazırlıklı ifadeyi ve bağlantıyı kapat $stmt->close(); $conn->close(); ?>

4. Sonuç

Bu örneklerde, MySQLi ile veritabanı kayıtlarını güncelleme işlemi hem basit bir sorgu yöntemiyle hem de daha güvenli bir yöntem olan prepared statements ile gösterilmiştir. Prepared statements kullanarak güvenliği artırabilir ve SQL enjeksiyon saldırılarına karşı korunabilirsiniz. Özellikle kullanıcıdan gelen verilerle işlem yaparken bu güvenlik önlemi büyük önem taşır.

Bu Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu ders ve konuyla ilgili en çok merak edilenler

Php 8 MySQLi ile Kayıt Güncelleme dersini öğrenmek için ön koşul var mı?

Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.

Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?

Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.

Takıldığım bir yerde nereden soru sorabilirim?

Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!