2016-04-02 11 views
-1

, her iki yöntem gibi getWhere(), bu yöntem, dönüş true veya false sağlar.PDO ile bir bulma yöntemi oluşturun? <code>getWhere</code> iletilen dizi içerik veritabanı tablosu bulunmuştur eğer <code>Slim</code> veya <code>CodeIgniter</code> olarak çerçeve çalıştık Geçmişte

public function findRecordById($table, $where = null, $param = null) 
{ 
    $results = $this->select("SELECT * FROM $table WHERE $where",$param); 
    if(count($results) == 0) 
    { 
     return false; 
    } 
    return true; 
} 

için: PDO işlevselliğini genişleten Aslında oluşturduk kendi katman sınıfı, amacım verilen parametrelere dayalı olarak belirli bir veritabanı içeriği arayın özen bir yöntem oluşturmaktır, şu anda ben yarattım bir içeriğinde arama ben sadece yapın:

if(!$this->db->findRecordById("table_name", "code = :key AND param2 = :code", 
      array("key" => $arr['key'], "code" => $arr['code']))){ 
    echo "content not found"; 
} 

şimdi tüm oldukça iyi çalışıyor ama koşuluyla çağrı biraz 'çok uzun ve pratik olduğunu düşünüyorum, her şeyi belki bir içine tüm içeriği gidiş optimize etmek istiyorum dizi ya da bir şey, ama şu ana kadar kesin bir fikrim var. Biraz yardım?

+0

Sorunu tam olarak anlamadım. –

+0

@YourCommonSense Uhm, ne anlamadığınızı bilmiyorum, ancak sadece "findRecordById" yöntemini optimize etmek istiyorum, şimdi tablo adını (kaydı bulmam gereken yere), nerede yan tümce ve dizi olarak parametreler. Her şeyi optimize etmeyi ve bir dizide nerede ve paremetreler ya da bunun gibi bir şey iletmek istiyorum. – Dillinger

cevap

0

Sorunu tam olarak anlayamıyorum, ancak sağlanan kod için böyle bir yöntemin hiçbir zaman bir DB sarıcısına değil, tamamen farklı bir öykü olan bir CRUD sınıfına ait olduğunu söyleyebilirim. Böyle bir yöntemi kullanmak istiyorsanız

, bir Modeli sınıfın bir yöntem olabilir ve birlikte I would strongly suggest you to keep with raw SQL

$sql = "SELECT * FROM table_name WHERE code = :key AND param2 = :code"; 
$data = $this->db->query($sql, $arr)->fetchAll(); 

bir veritabanı sarıcı bu

$article = Article::find($id); 

gibi kullanılabilir olmalıdır Herkesin okuyabileceği ve anlayabileceği temiz, düzenli ve okunabilir kod.

Bonus olarak, ODER BY operatörünü kullanarak sorgu sonuçlarını sipariş edebilirsiniz.

+0

Dinlenme api için ilginç bir yazı, ancak örnek kodun nasıl kodlandıracağınızı anlamıyorum 'find' yöntemini optimize edebilir. – Dillinger

+0

Veritabanı sarıcıda –

+0

hiçbir bulma yönteminin bulunmaması gerektiğini açıklar. Bu nedenle, her model için bir "var" yöntemi oluşturmanızı öneririz. – Dillinger

İlgili konular