Merhaba,
Pdo ile bir sorgu yapmaya calısıyorum ama her defasında hata aldım.
INSERT INTO ozellik (ozellik_vid, ozellik_baslik, ozellik_tip) SELECT 4,vozellik_baslik,vozellik_tip FROM vozellik WHERE vozellik_tip='0'
burada selectten sonra ki olan 4 post methoduyla gonderiliyor gerisi sabit nasıl bir query yapmam lazım ?
PDO Insert into select kullanılarak sorgu
14
●113
- 05-08-2021, 12:49:37
- 05-08-2021, 12:59:12
$insert = $db -> prepare("insert into veritabani set veri1=?, veri2=?, veri3=?"); $insert -> execute(array($veri1, $veri2, $veri3));Insert işleminde where kullanılmaz, eğer güncelleme yapmak istiyorsanız;
$update= $db -> prepare("update veritabani set veri1=?, veri2=?, veri3=? where id = ?"); $update -> execute(array($veri1, $veri2, $veri3, $id)); - 05-08-2021, 13:00:25hocam insert into ve select in iç içe kullanımı ile ilgili kafam karıştı sorun sadece insert into değil.HelixTm adlı üyeden alıntı: mesajı görüntüle
insert into ile select birlikte kullanıldığında WHERE kullanılır. - 05-08-2021, 13:04:01bindParam ile veya execute ile verileri belirterek işlem yapman daha iyi olur. Posttan ' gibi veriler geldiği zaman sql kod dizimini bozar veya injectiona sebep olabilir
- 05-08-2021, 13:04:21HelixTm adlı üyeden alıntı: mesajı görüntüle
hocam ben insert into kısımına hakimim insert into içerisinde select kullanarak bir db'den başka bir veriye ekleme yaptırıyorum bu nedenle select kullanıyorum ve tabi ki where kukllanıyorum.
INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1 WHERE condition;
- 05-08-2021, 13:06:44
$stmt = $db->prepare("INSERT INTO ozellik (ozellik_vid, ozellik_baslik, ozellik_tip) SELECT :villa,vozellik_baslik,vozellik_tip FROM vozellik WHERE vozellik_tip = :tip"); $stmt->execute(array(':villa' => $_POST['vid'], ':tip' => '0' ));burada neden hata aldığımı anlamıyorum. - 05-08-2021, 13:09:02Bu şekilde yapmak yerine 2 sorguyu ayrı ayrı şekilde çalıştırmak daha basit olmaz mı?eruseldarine adlı üyeden alıntı: mesajı görüntüle
1. sorguda sanırım insert yapıyorsunuz.
2. sorguda insert yaptığınız veriyi almak isiyorsunuz.
insert ettiğiniz satırın idsini PDO'da PDO::lastinsertid() komutu ile alabilirsiniz. - 05-08-2021, 13:12:16execute sırasında ':tip' neden bu şekilde yazıyorsunuz? Bunu 'tip' olarak değiştirir misiniz iki noktayı kullanmayın villada ve tipde. Sadece execute'da kaldırın bu iki noktaları.eruseldarine adlı üyeden alıntı: mesajı görüntüle
hocam ben insert into kısımına hakimim insert into içerisinde select kullanarak bir db'den başka bir veriye ekleme yaptırıyorum bu nedenle select kullanıyorum ve tabi ki where kukllanıyorum.