2016-04-03 58 views
-1

Rest API'mi yazıyorum ve INSERT/UPDATE/DELETE yöntemleriyle ilgili şüphem var. Özellikle ben kontrol etmek istiyorum yukarıdaki yöntemlerden herhangi birini gerçekleştirmeden önce URI geçirilen rekor olarak varsa:Rest API'da kayıt olup olmadığını kontrol edin.

endpoints/api/user/{id} 

şimdi benim fikrim ben PDO işlevlerini genişleterek oluşturulan tabakada her şeyi yerleştirmek olacaktır bu tür bir yöntem:

public function getWhere($table, $where) 
{ 
    return $this->exec("SELECT * FROM $table WHERE $where"); 
} 

ve geri uygun true veya false kayıt bulundu ya da değil ise. Ama bu yöntemin sql injection'a karşı güvenli olup olmadığını merak ediyorum. Ayrıca, kaydı güncellemeden veya eklemeden önce kaydın olup olmadığını görmenin başka bir yolu olup olmadığını merak ediyorum. Benim API'mın yüz model gibi bir şey olacağını düşünüyorum, bu yüzden herhangi bir modelde kolaylıkla kullanılabilecek verimli bir çözüme ihtiyacım var.

+0

SQL sorgusunun doğrudan kullanıcı girişi geçmektedir asla. Hazırlanmış ifadeler kullanın. –

+0

@RomanNazarkin Ok, ve yöntemin tabloda var olup olmadığını kontrol eden yöntem için diğer ipucu? – Dillinger

cevap

3

PDO sınıflarını kendi yöntemlerinizle genişletmeyecek ve yardımcı olacağını düşünün. Yapmıyor, lütfen Your first database wrapper's childhood diseases'u okuyun.

kullanın, normal hazırlanmış tablolar gibi belirli bir kimliği için bir satır almak için:

$stmt = $dbh->prepare('SELECT columns FROM users WHERE id = ?'); 
/* work with $stmt */ 
+0

önerileriniz için teşekkürler. Kendi yöntemini kaldırdım, sadece bir şey: Eğer cevabını iyi anlarsam, her modelde bu yönteme ihtiyacım var. Bu doğru? – Dillinger

İlgili konular