如何在zend框架中使用多条件选择?

问题描述:

我想选择与Zend框架多条件的行我如何可以实现/如何在zend框架中使用多条件选择?

1 - 例如“选择ID,名字,姓氏,从一个人的城市,名字=亚历克斯城市= XX”; 2-example“select name,select name,lastname,from first name = alex or city = xx”;

$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手动看到更多的例子。

你可以看到例子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 $ maximumPrice”变量没有被消毒。这可能导致SQL注入。 – 2010-02-06 15:00:49

+0

对不起,-1。没有人知道这个例子来自手动。这是错的,但这不是你的错。如果你编辑你的问题,我可以撤消投票。 – 2010-02-06 15:08:04

+0

一方面你是正确的,另一方面它是完全安全的,因为这两个变量都是在3行之前定义的,并且是整数。我同意,如果有人只复制选择它可能是问题。为了解释如何构建查询更清晰。 – 2010-02-06 18:03:03