v2.5.2
Giriş yap

Aynı anda birden fazla tabloya kayıt etmek

Anonim
678 defa görüntülendi

Post ile gelen verileri aynı anda birden fazla tabloya kaydetmek için aşağıdaki gibi bir kod yazdım ancak ilk başta bulunan $ekle çalışmıyor dierkt iflerin içerisindekiler çalışıyor. $ekle yi if parantezlerinin içerisine yazıpta denemiştim yine olmuyordu onun yerine oekle ve pekle çalışıyor. Ne yapabilirim?

<?php
    
$ekle = "INSERT into genel (baslik,aciklama,adres,logo,etiket) values('$baslik','$aciklama','$padres','$ad','$etiket')";


if($tur==$oyun) {

rename('../admin/'.$sadi.'', '../games/'.$sadi.'');

$oekle = "INSERT into oyunlar (baslik,aciklama,adres,logo,etiket) values('$baslik','$aciklama','$adres','$ad','$etiket')";

if($connect->query($oekle)) {
  echo "Başarıyla Eklendi. 5 Saniye İçerisinde Yönetim Sayfasına Yönlendirileceksiniz.";
  header("Refresh: 5; url=yonetim.php");
}
else {
  echo "Bir hata oluştu! Maalesef İşlem Tamamlanamadı :/";
  header("Refresh: 5; url=yonetim.php");
}
}

elseif($tur==$program) {

rename('../admin/'.$sadi.'', '../programs/'.$sadi.'');

$pekle = "INSERT into programlar (baslik,aciklama,adres,logo,etiket) values('$baslik','$aciklama','$adres','$ad','$etiket')";

if($connect->query($pekle)) {
  echo "Başarıyla Eklendi. 5 Saniye İçerisinde Yönetim Sayfasına Yönlendirileceksiniz.";
  header("Refresh: 5; url=yonetim.php");
}
else {
  echo "Bir hata oluştu! Maalesef İşlem Tamamlanamadı :/";
  header("Refresh: 5; url=yonetim.php");
}
?>
Cevap yaz
Cevaplar (4)
m100
1424 gün önce

birdan fazla tabloya kayıt için PDO'da çok güzel fonksiyonlarımız var aslında arkadaşların verdiği cevaplar da işe yarayabilir fakat her zaman hazır PDO fonksiyonlar hem daha güvenli hem daha kolay olur genelde


/* Ototeslim kipini kapatıp bir hareket başlatalım */
$dbh->beginTransaction();

/* Veritabanı şemasını ve verisini değiştirelim */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* değişikliği gönderiyoruz */
$dbh->commit();

Fakat bu şekilde kullanman için PDO bağlantında bğazı değiştikler yapıp attr eklemen gerekiyor
ve toplu paket yüklerken her zmaan try catch içine al ve şu kodu yaz

/* bu kod bir hata var ise yaprığın değikiklikleri geri almana yarar */
$dbh->rollBack();

bağlantında yapman gereken değişklik ise şu

array(PDO::ATTR_PERSISTENT => true)
/* bu kodu PDO bağlantı cümlenin sonuna , ile ekle  */
aydinkeskin
1424 gün önce

kodlarında $ekle için herhangir bir işlem yaptırmamışsın ki
sadece değişkene sorguyu yazmışsın ama sorguyu çalıştırmamışsın


$ekle = connect->prepare("INSERT INTO genel SET baslik=?, aciklama=? ,adre=? s,logo=? ,etiket=? ");
$ekle->execute([$baslik, $aciklama, $adres, $logo, $etiket]);
if($ekle->rowCount() ){
    echo "eklendi";
}else{
    echo "eklenmedi";
}

kısacası bir elseif daha çekmen gerekiyor senin kodlarına göre yada son elseif den sonra bir else daha

yani 2 tur de yok sa else çalışıyor
yada 3. bir tür varsa elseif $ekle çalışır

mastermst
1424 gün önce

Denedim ama yine eklemedi :/

coder
1425 gün önce

Aşağıdaki gibi deneyin.

$ekle = $connect->query("INSERT into genel (baslik,aciklama,adres,logo,etiket) values('$baslik','$aciklama','$padres','$ad','$etiket'))";