Mysql veri tabanına PHP ile veri eklemek için mysqli_query ile insert into table cümle yapısı kullanılır. Bu kullanımda önce parantez içerisinde tablo sütunları yada alanları, sonra values ile yine parantez içerisinde sütunlara eklenecek değerler yazılır. Tabi öncelikle veri tabanı bağlantısının yapılmış olması gerekir ($baglanti).
//veri tabanına bağlantı
$baglanti=mysqli_conect("localhost","root","","veritabanı adı");
mysqli_set_charset($baglanti, "utf8mb4");
//verilerin eklenmesi
$sql=mysql_query("insert into tablo_adi (alan1,alan2,alan3,alan4,.....) values ('$deger1','$deger2','$deger3','$deger4',......) ");
mysqli_query($baglanti,$sql);
PHP ile mysql veri tabanına veri eklemek için öncelikle
olması gerekir. Burada yerel sunucu (localhost) üzerinden bağlantı sağlayacağız.. Basit bir mesajlar sayfası hazırlayarak ekleme işlemini anlamaya çalışalım..
sitevt isimli mysql veri tabanı ve içinde "mesajlar" tablosu aşağıdaki gibi hazırlanmış olsun. Tablo içerisinde 3 alan var
id alanını auto_increment yapmayı unutmuyoruz..
sitevt.sql
Localhost üzerinden , sitevt isimli veri tabanına aşağıdaki gibi mysqli_connect ile bağlantıyı sağlayıp baglan.php olarak
kaydeeceğiz..
baglan.php
// $baglanti = mysqli_connect("host" , $kullanici, $sifre, $veritabanıadi);
$baglanti = mysqli_connect("localhost" , "root" , "" , "sitevt");
mysqli_set_charset($baglanti, "utf8mb4");
Veri tabanına eklenecek bilgileri alabilmek için , tablo sütunlarına uygun elemanlarda oluşan bir form hazırlamamız gerekir. Ben daha düzgün bir görüntü elde edebilmek için Bootstrap 5 tasarımını kullandım. Sizler kullanmak zorunda değilsiniz tabiki...
mesajlar.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<title>Hello, world!</title>
</head>
<body>
<div class="container mt-5 p-5">
<form action="" method="post">
<label> Adınız Soyadınız</label>
<input type="text" name="ad_soyad" class="form-control">
<textarea class="form-control mt-4" name="mesaj" placeholder="Mesaj Yazın.."></textarea>
<button type="submit" class="btn btn-primary w-100 mt-2"> EKLE </button>
</form>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
</body>
</html>
Yukarıdaki mesajlar.php sayfasında Form action alanını boş bıraktım. Dolayısıyla form gönderildiğinde aynı sayfada POST işlemi gerçekleşecek. Dilerseniz başka bir sayafa yönlendirebilir yada aynı sayfaya querystring ile yönlendirebilirsiniz.
Form bilgileri;
Ad Soyad : ad_soyad name'li inputtan
Mesaj : mesaj name'li Textarea
Tarih: Ekleme esnasında PHP ile belirlenecek..
Formu hazırladığımza göre artık PHP ve MYSQL komutlarıyla , formdan gelen bilgileri veri tabanına kayıt edebiliriz. Bunun için öncelikle bir POST kontrolü yapacağız. Form gönderildiğinde yani ekle, gönder vs butonua tıklandığında POST işlemi gerçekleşir ve formdaki değerler gönderilmiş olur. Gelen verileri form inputlarından alarak bir MYSQL cümlesi ile veri tabanına göndereceğiz.
Ancak öncelikle sayfanın en üstüne daha önce hazırladığımız "baglan.php" sayfasını include etmeliyiz..
<?php
//bağlantı
include("baglan.php");
//post varsa
if ($_POST){
//form verileri
$ad_soyad=$_POST["ad_soyad"];
$mesaj=$_POST["mesaj"];
$tarih=date("Y-m-d");
//ekleme
$sql="insert into mesajlar (ad_soyad,mesaj,tarih) values ('$ad_soyad','$mesaj','$tarih')";
mysqli_query($baglanti,$sql);
echo "veri eklendi";
}
?>
Verilerin eklenip eklenmediğini if bloğu ile kontrol ettirebilir ve hata varsa yazdırabiliriz.. Bunun için bağlantıyı sağlayan mysqli sorgusunu if bloğuna alacağız..
//ekleme
$sql="insert into mesajlar (ad_soyad,mesaj,tarih) values ('$ad_soyad','$mesaj','$tarih')";
if(mysqli_query($baglanti,$sql)) {
echo "veri eklendi";
}
else {
echo "Hata: " . $sql . "<br>" . mysqli_error($baglanti);
}
Yukarıda mysqlü_query sorgusu çalışırsa ekrande VERİ EKLENDİ uyarısı görünür. Ancak hata olması durumunda mysql_error fonksiyonu oluşan hatayı ekranda gösterecektir...
Toplam 33 Makale
Lütfen yorumlarınızda saygılı, yapıcı ve anlaşılır bir dil kullanın.
Küfür, hakaret ya da spam içerikler onaylanmaz.