PHP ile veritabanı tablosuna güvenli bir biçimde veri ekleme ya da kayıt ekleme işlemleri ile alakalı bilgiler yer almaktadır.
PDO ile veri ekleme işlemi PHP PDO Kullanımı yazısında açıkladığım exec, query ve prepare metoduyla yapılabilir.
Veri ekleme işlemi genelde dışarıdan alınan bilginin veritabanı kayıt edilmesi ile olmaktadır.
Veri ekleme ve kaydetme sırasında kullanıcının yanlış/hatalı veri girmesi istenmeyen durumların ortaya çıkmasına neden olur.
Formun hazırlanması
Verilerin düzgün olarak girilmesi için HTML5 input Tipleri ve HTML5 input Özellikleri yazımda belirttiğim yenilikleri kullanmak yararlı olacaktır.
1 2 3 4 5 6 7 8 9 10 11 |
<form action="" method="post"> Adınız:<br /> <input type="text" name="adi" required="required" /><br /> Soyadınız:<br /> <input type="text" name="soyadi" required="required" /><br /> E-posta Adresiniz:<br /> <input type="email" name="eposta" required="required" /> <input type="submit" value="Kaydet" /> </form> |
Veri ekleme işlemi için gereken görselliği oluşturduktan sonra PHP ile gönderilen verilerin kontrol edilmesi ve filtre edilmesi yararlı olacaktır.
Filtre ve kontrollerin yapılması
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
PHP form kontrolü ve verilerin filtrelenmesi;<?php if (isset($_POST['adi'], $_POST['soyadi'], $_POST['eposta'])) { $adi = trim(filter_input(INPUT_POST, 'adi', FILTER_SANITIZE_STRING)); $soyadi = trim(filter_input(INPUT_POST, 'soyadi', FILTER_SANITIZE_STRING)); $eposta = trim(filter_input(INPUT_POST, 'eposta', FILTER_SANITIZE_EMAIL)); if (empty($adi) || empty($soyadi) || empty($eposta)) { die("<p>Lütfen formu eksiksiz doldurun!</p>"); } if (!filter_var($eposta, FILTER_VALIDATE_EMAIL)) { die("<p>Lütfen geçerli bir e-posta adresin girin!</p>"); } echo "PHP PDO veri ekleme işlemi"; } ?> |
Gerekli kontrol ve filtrelemenin ardından PHP PDO Veritabanı Bağlantısı ve PHP PDO Kullanımı yazılarındaki bilgilerden yararlanarak veritabanı bağlantısı ve ön hazırlıklı sorgu (prepare) işlemini yapabiliriz.
Verilerin kaydedilmesi
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 |
PDO veri ekleme kodları;<?php if (isset($_POST['adi'], $_POST['soyadi'], $_POST['eposta'])) { $adi = trim(filter_input(INPUT_POST, 'adi', FILTER_SANITIZE_STRING)); $soyadi = trim(filter_input(INPUT_POST, 'soyadi', FILTER_SANITIZE_STRING)); $eposta = trim(filter_input(INPUT_POST, 'eposta', FILTER_SANITIZE_EMAIL)); if (empty($adi) || empty($soyadi) || empty($eposta)) { die("<p>Lütfen formu eksiksiz doldurun!</p>"); } if (!filter_var($eposta, FILTER_VALIDATE_EMAIL)) { die("<p>Lütfen geçerli bir e-posta adresin girin!</p>"); } try { $baglanti = new PDO("mysql:host=localhost;dbname=kisi", "root", ""); $baglanti->exec("SET NAMES utf8"); $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sorgu = $baglanti->prepare("INSERT INTO kisiler(kisi_adi, kisi_soyadi, kisi_eposta) VALUES(?, ?, ?)"); $sorgu->bindParam(1, $adi, PDO::PARAM_STR); $sorgu->bindParam(2, $soyadi, PDO::PARAM_STR); $sorgu->bindParam(3, $eposta, PDO::PARAM_STR); $sorgu->execute(); echo "<p>Bilgiler başarılı bir şekilde kaydedildi.</p>"; } catch (PDOException $e) { die($e->getMessage()); } $baglanti = null; } ?> |
PDO ile veri ekleme ve kaydetme işlemi
formun hazırlanması (veriler kullanıcıdan alınacaksa),
gerekli kontrollerin ve filtrelemenin yapılması (veriler kullanıcıdan alınacaksa),
bağlantının yapılması ve sorgunun (insert into) hazırlanması
adımları ile yapılır.
PDO ile veri kaydetme işlemi için SQL insert into kullanımını öğrenmek yararlı olacaktır.