lostyazilim
tr.link

PDO insert update delete işlemlerinde exec mi prepare mi uygun?

5 Mesajlar 743 Okunma
acebozum
tr.link

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
iyi günler başlıkta tam anlatamadım onun için örnek vererek gideceğim
Php prepare örneği
$sql= "update from ayar set siteadi=:sitead,sitebaslik=:slogan,copright=:altbilgi,siteaciklamasi=:aciklama,hakkinda=:sitehakkinda";
$guncelle=$this->vt->prepare($sql);
$guncelle->execute(
array
(
"sitead"=>$siteadi,
"slogan"=>$slogan,
"altbilgi"=>$altbilgi,
"aciklama"=>$aciklama,
"sitehakkinda"=>$hakkinda
)
)

PHP Exec örneği

$sql= "update from ayar set siteadi=$siteadi,sitebaslik=$slogan,copright=$altbilgi,,siteaciklamasi=$aciklama,hakkinda=$hakkinda";
$guncelle=$this->vt->exec($sql);
if($guncelle)
{echo "Güncellendi";}
else
{echo "GÜncellenemedi";}


sizce hangisi daha güvenli ve kullanımı uygun :)
 

 

elektronikssl
webimgo

YORci YORci yorci.com Kullanıcı
  • Üyelik 06.02.2016
  • Yaş/Cinsiyet 29 / E
  • Meslek Arkaplan Yazılım
  • Konum Ankara
  • Ad Soyad I** Y**
  • Mesajlar 261
  • Beğeniler 88 / 127
  • Ticaret 21, (%100)
Prepare senin için veritabanına gönderilen verileri temizler, yani ekstradan güvenlik önlemi almana gerek kalmaz ama exec doğrudan verilen sorguyu veritabanına işletir.

Exec kullanımı sakıncalı olabilir.
onurcelik

kişi bu mesajı beğendi.

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

YORÇI adlı üyeden alıntı

Prepare senin için veritabanına gönderilen verileri temizler, yani ekstradan güvenlik önlemi almana gerek kalmaz ama exec doğrudan verilen sorguyu veritabanına işletir.

Exec kullanımı sakıncalı olabilir.


aradığım cevap buydu hocam sağolun bikaç yerde görmüştüm cevapsız işlem olarak geçiyor (Yani bir değer döndürmüyor) bunlarda exec kullanımı mantıklı bahsetmişler.Drekt veritabanına veriyi yazdırmak güvenlik açığına neden olabilir düşüncesinden aklıma yatmadı :)
 

 

brown brown WM Aracı Kullanıcı
  • Üyelik 28.10.2013
  • Yaş/Cinsiyet 25 / E
  • Meslek öğrenci
  • Konum İstanbul Avrupa
  • Ad Soyad H** E**
  • Mesajlar 1748
  • Beğeniler 385 / 385
  • Ticaret 27, (%96)
Ben de PDO'nun mysqli'ye göre avantajı bu diye biliyorum. Prepare kullanarak SQL Injection açıklarından korunabiliyoruz.
 

 

wmaraci
wmaraci

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)

brown adlı üyeden alıntı

Ben de PDO'nun mysqli'ye göre avantajı bu diye biliyorum. Prepare kullanarak SQL Injection açıklarından korunabiliyoruz.

Sade o değil ki düzenli kod yapısı sağlıyor :) exec kullanmak istememdeki 2 neden
1.Ekrana etkilenen satır sayısını yazdırabiliyor
2.koşula sokabiliyorum
$dbh=$vt->exec($sql);
if($dbh)
{
echo "İşlem başarılı
";
print_r($dbh);
}
else
{
echo "Hata oluştu";
}

kullanmamda şüphe ettiren durumsa drekt işlem yapmamız ki sql inj. :D
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al