MySQL’de Veri Ekleme, Veri Seçme ve Verileri Silme konularında yazılar yazdık. Bu yazıda ilgili başka bir tane daha yazı yazacağız.
MySQL’de Veri Güncelleme nasıl yapılacağını göreceğiz. Bu yazıda, tablodaki verileri güncellemek için UPDATE kullanacağız.
Güncellemek için “blog” adında bir veritabanındaki “tbl_kayit” adındaki tablo bilgilerini güncelleyeceğiz. Daha önceki yazılardan yada aşağıdaki SQL ifadesinden bu tabloya ulaşabilirsiniz.
1 2 3 4 5 6 7 8 9 10 | CREATE TABLE `tbl_kayit` ( `tbl_kayit_id` INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL, `unvan` VARCHAR(100) NOT NULL, `adi` VARCHAR(100) NOT NULL, `soyadi` VARCHAR(100) NOT NULL, `email` VARCHAR(100) NOT NULL, `telefon` VARCHAR(100) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
SQL cümlesini gösterdikten sonra PDO bağlantısı için gerekli baglanti.php adında bir dosya oluşturup aşağıdaki kodları ekleyiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $sunucuadi = "localhost"; $kadi = "root"; //local kadi:root $sifre = "";//local şifre:"" $vtadi = "blog"; // bağlantı oluşturma try { $conn = new PDO("mysql:host=$sunucuadi;dbname=$vtadi;charset=utf8mb4", $kadi, $sifre); // Hata modunu etkinleştirme $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } |
listele.php adında dosya açınız. Bağlantı cümlesi yazıldıktan sonra kayıtları güncellemek için aşağıdaki gibi kayıtları listeleyip yanına GÜNCELLE butonunu ekleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <table border="1" cellspacing="5" cellpadding="5" width="50%"> <thead> <tr> <th>Sıra</th> <th>Ünvan</th> <th>Ad</th> <th>Soyad</th> <th>Email</th> <th>Telefon</th> <th>GÜNCELLE</th> </tr> </thead> <tbody> <?php require_once('baglanti.php'); $result = $conn->prepare("SELECT * FROM tbl_kayit ORDER BY tbl_kayit_id ASC"); $result->execute(); for($i=0; $row = $result->fetch(); $i++){ ?> <tr> <td><?php echo $row['tbl_kayit_id']; ?> </td> <td><?php echo $row['unvan']; ?> </td> <td><?php echo $row['adi']; ?> </td> <td><?php echo $row['soyadi']; ?> </td> <td><?php echo $row['email']; ?> </td> <td><?php echo $row['telefon']; ?> </td> <td> <a href="guncelle.php<?php echo '?kayit_id='.$row['tbl_kayit_id']; ?>"> <button style="color:red"> Kaydı Güncelle </button> </a> </td> </tr> <?php } ?> </tbody> </table> |
Güncelleme işlemleri için gerekli formu oluşturmak için guncelle.php adında bir dosya açıp aşağıdaki gibi ilgili kaydı çeken ve güncelleyen kodları yazalım. Kodlardaki if else blokları formun gösterilmesi ve kayıtların güncellenmesi için kullanılmıştır. Tablodan gelen kayıtları listelemek için $_GET[‘kayit_id’] değerinin olup olmadığı kontrol edilmektedir. Güncelle butonuna basılınca da kayıtların güncellenmesi için $_POST[‘guncelle’] kontrolü yapılmaktadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <?php include 'baglanti.php'; //GUNCELLE butonuna basıldığında çalışacak kısım if(isset($_POST['guncelle'])) { $get_id=$_POST['kayit_id']; $unvan=$_POST['unvan']; $adi=$_POST['isim']; $soyadi=$_POST['soyisim']; $email=$_POST['email']; $telefon=$_POST['telefon']; /* PHP değişkenleriyle ilişkili bir hazır deyim çalıştıralım */ $sql = "UPDATE tbl_registration SET first_name='Sarah' WHERE tbl_registration_id=2"; try { $sth = $conn->prepare('UPDATE tbl_kayit SET unvan=?, adi=?, soyadi=? ,email=? ,telefon=? WHERE tbl_kayit_id=?'); $sth->bindParam(1, $unvan, PDO::PARAM_STR); $sth->bindParam(2, $adi, PDO::PARAM_STR); $sth->bindParam(3, $soyadi, PDO::PARAM_STR); $sth->bindParam(4, $email, PDO::PARAM_STR); $sth->bindParam(5, $telefon, PDO::PARAM_STR); $sth->bindParam(6, $get_id, PDO::PARAM_INT); $sth->execute(); //kayıt başarılı olursa echo "<script>window.alert('Kaydınız güncellendi!');</script>"; } catch(PDOException $e) { echo $sql . "HATA: <br>" . $e->getMessage(); } } else if(isset($_GET['kayit_id'])){ $get_id=$_GET['kayit_id']; //$sql = ; // Sorguyu hazırla $stmt = $conn->prepare("SELECT * FROM tbl_kayit WHERE tbl_kayit_id = ?"); $stmt->bindParam(1, $get_id, PDO::PARAM_INT); // sorguyu çalıştır $stmt->execute(); $sonuc = $stmt->fetch(PDO::FETCH_ASSOC); ?> <h2>PHP PDO ile Kayıt Güncelle</h2> <form method="post" action="<?=$_SERVER['PHP_SELF']?>"> <table cellspacing="3" cellpadding="3" width="80%"> <tr> <td><label>ID</label></td> <td><input type="text" name="kayit_id" value="<?=$sonuc['tbl_kayit_id']?>" readonly></td> </tr> <tr> <td><label>Ünvanı girin</label></td> <td><input type="text" name="unvan" value="<?=$sonuc['unvan']?>"></td> </tr> <tr> <td><label>Adınızı girin</label></td> <td><input type="text" name="isim" value="<?=$sonuc['adi']?>"></td> </tr> <tr> <td><label>Soyadınızı girin</label></td> <td><input type="text" name="soyisim" value="<?=$sonuc['soyadi']?>"></td> </tr> <tr> <td><label>Email girin</label></td> <td><input type="email" name="email" value="<?=$sonuc['email']?>"></td> </tr> <tr> <td><label>Telefon girin</label></td> <td><input type="text" value="<?=$sonuc['telefon']?>" name="telefon"></td> </tr> <tr> <td colspan="2"> <button type="submit" name="guncelle">Kayıt Güncelle</button> </td> </tr> </table> </form> <?php } ?> |
Bu yazıda MySQL ve PHP ile kayıt güncelleme işlemi nasıl yapıldığını öğrendik.
1 Yorum