2010-02-06 105 views
1

我想選擇與Zend框架多條件的行我如何可以實現/如何在zend框架中使用多條件選擇?

1 - 例如「選擇ID,名字,姓氏,從一個人的城市,名字=亞歷克斯城市= XX」; 2-example「select name,select name,lastname,from first name = alex or city = xx」;

回答

1
$firstname = 'alex'; 
$city = 'xx'; 

// AND query 
$select = $adapter->select() 
    ->from('person', array('id', 'firstname', 'lastname', 'city') 
    ->where('firstname = ?', $firstname) 
    ->where('city ?', $city); 


// OR query 
$select = $adapter->select() 
    ->from('person', array('id', 'firstname', 'lastname', 'city') 
    ->where('firstname = ?', $firstname) 
    ->orWhere('city = ?', $city); 

看看在Zend_Db_Select手動看到更多的例子。

1

你可以看到例子Zend.DB manual

// Build this query: 
    // SELECT product_id, product_name, price 
    // FROM "products" 
    // WHERE (price < 100.00 OR price > 500.00) 
    //  AND (product_name = 'Apple') 

    $minimumPrice = 100; 
    $maximumPrice = 500; 
    $prod = 'Apple'; 

    $select = $db->select() 
       ->from('products', 
         array('product_id', 'product_name', 'price')) 
       ->where("price < $minimumPrice OR price > $maximumPrice") 
       ->where('product_name = ?', $prod); 
+0

在這部分「price <$ minimumPrice或price> $ maximumPrice」變量沒有被消毒。這可能導致SQL注入。 – 2010-02-06 15:00:49

+0

對不起,-1。沒有人知道這個例子來自手動。這是錯的,但這不是你的錯。如果你編輯你的問題,我可以撤消投票。 – 2010-02-06 15:08:04

+0

一方面你是正確的,另一方面它是完全安全的,因爲這兩個變量都是在3行之前定義的,並且是整數。我同意,如果有人只複製選擇它可能是問題。爲了解釋如何構建查詢更清晰。 – 2010-02-06 18:03:03