如何在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);
在这部分“price $ maximumPrice”变量没有被消毒。这可能导致SQL注入。 – 2010-02-06 15:00:49
对不起,-1。没有人知道这个例子来自手动。这是错的,但这不是你的错。如果你编辑你的问题,我可以撤消投票。 – 2010-02-06 15:08:04
一方面你是正确的,另一方面它是完全安全的,因为这两个变量都是在3行之前定义的,并且是整数。我同意,如果有人只复制选择它可能是问题。为了解释如何构建查询更清晰。 – 2010-02-06 18:03:03