GenelPHP

Pdo ile Veritabanına Veri Kaydetme

Merhaba arkadaşlar bugün Pdo İle veritabanına veri kaydetmeyi göstereceğim.

İlk olarak bir veritabanı oluşturalım.

mysql , pdo

Daha sonra bir Form oluşturalım . 

Verigir adında php uzantılı bir metin belgesi oluşturup aşağıdaki kodları yazalım.

<!DOCTYPE html> <html> <head> <title>Kaydet</title> </head> <body> <form method="Post"> Adınızı Giriniz : <input type="text" name="ad"> <br> <br> Soyadınızı Giriniz: <input type="text" name = "soyad"> <br> <br> <input type="submit" name="gonder"> </form> </body> </html>

Bu kodları yazdığımızda karşımıza böyle bir Görüntü çıkacaktır.

Şimdi Veritabanı bağlantısı için bir metin belgesi oluşturup uzantısını php olarak ayarlayalım.

Ben vt.php adında bir metin belgesi oluşturdum kodları aşağıda paylaşıyorum.

<?php
$host = 'localhost';
$dbname = 'ders';
$username = 'root';
$password = '';
$charset = 'utf8';
//$collate = 'utf8_unicode_ci';
$dsn = "mysql:host=$host;dbname=$dbname;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_PERSISTENT => false,
    PDO::ATTR_EMULATE_PREPARES => false,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    //   PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES $charset COLLATE $collate"
];
try {
    $baglanti = new PDO($dsn, $username, $password, $options);
    $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Bağlantı hatası: ' . $e->getMessage();
    exit;
}
?>

Veritabanı bağlantısınıda gerçekleştirdik şimdi verigir.php ‘ye veritabanı bağlantı dosyasını çağıracağız bunun için include komutunu kullanacağız.

<?php include "vt.php" ?>

<!DOCTYPE html>
<html>
<head>
<title>Kaydet</title>
</head>
<body>
<form method="Post">
Adınızı Giriniz :
<input type="text" name="ad">
<br>
<br>
Soyadınızı Giriniz:
<input type="text" name = "soyad">
<br>
<br>
<input type="submit" name="gonder">

</form>
</body>
</html>

Son olarak gerekli sql sorgularımızı  verigir.php’ye yazıyoruz ve son hali aşağıdaki gibi olmuş oluyor.

<?php include "vt.php" ?>

<!DOCTYPE html>
<html>
<head>
<title>Kaydet</title>
</head>
<body>
<form method="Post">
Adınızı Giriniz :
<input type="text" name="ad">
<br>
<br>
Soyadınızı Giriniz:
<input type="text" name = "soyad">
<br>
<br>
<input type="submit" name="gonder">

</form>
</body>
</html>

///Buradan sonraki kodlarda form elemanlarının boş olup olmadığı kontrol ediliyor

<?php

if (isset($_POST['ad'], $_POST['soyad'])) {

$ad = trim(filter_input(INPUT_POST, 'ad', FILTER_SANITIZE_STRING));
$soyad = trim(filter_input(INPUT_POST, 'soyad', FILTER_SANITIZE_STRING));
$eposta = trim(filter_input(INPUT_POST, 'eposta', FILTER_SANITIZE_EMAIL));

if (empty($ad) || empty($soyad)) {
die("<p>Lütfen formu eksiksiz doldurun!</p>");
}

}

?>

<?php
if (isset($_POST['ad'], $_POST['soyad'])) {

$ad = trim(filter_input(INPUT_POST, 'ad', FILTER_SANITIZE_STRING));
$soyad = trim(filter_input(INPUT_POST, 'soyad', FILTER_SANITIZE_STRING));

if (empty($ad) || empty($soyad)) {
die("<p>Lütfen formu eksiksiz doldurun!</p>");
}

try {

$baglanti = new PDO("mysql:host=localhost;dbname=ders", "root", "");




$baglanti->exec("SET NAMES utf8");
$baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sorgu = $baglanti->prepare("INSERT INTO ders(ad, soyad) VALUES(?, ?)");
$sorgu->bindParam(1, $ad, PDO::PARAM_STR);
$sorgu->bindParam(2, $soyad, PDO::PARAM_STR);

$sorgu->execute();
$var =$_POST['gonder'];

} catch (PDOException $e) {
die($e->getMessage());
}

$baglanti = null;
}

?>

Not: Vt.php ve verigir.php dosyaları aynı dizinde olmaları gerekmektedir farklı bir dizindeyse <?php include “dizinadı/vt.php” ?> şeklinde olmalıdır.

Veritabanına

Bir sonraki yazımızda Veritabanından verileri listeleyip düzenleme işlemini gerçekleştireceğiz bir sonraki yazımıda görüşmek üzere.

Etiketler

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
Kapalı
Kapalı