आप इसे बनाने के लिए उपयोग कर सकते हैं या 2 शर्तों के बीच ByDefault यह है और
$query=db_select('users','u')->fields('u',array('uid','title','created','uid'));
$query->join('flag_content','fc' , 'u.uid = fc.content_id');
$db_or = db_or();
$db_or->condition('fc.fid', '5' , '=');
$db_or->condition('fc.uid', $uid , '=');
$query->condition($db_or);
$result = $query->execute()->fetchAll();
यह संभव है कि आपके पास 3 स्थितियां हों और मान लें कि यदि आप इसे con1 और con2 या con3 की तरह चाहते हैं और इस मामले में कई अन्य मामले हैं, तो आप db_and जैसे db_or का उपयोग कर सकते हैं क्योंकि जब आप db_or का उपयोग करने का प्रयास कर रहे हैं db_or के भीतर स्थितियां अब आप चाहते हैं और उन के बीच में आप db_and का उपयोग कर सकते हैं जो थोड़ा थकाऊ है, लेकिन इसे लागू करने के लिए संभव है कि नीचे दिए गए उदाहरणों का उपयोग किया जाए।
$query = db_select('work_details_table','wd');
$query->join('work_table','w','wd.request_id = w.request_id');
$query->fields('w',array('client_id'));
$query->fields('wd');
$query->condition('wd.request_id',$request_id);
if($status == 5 || $status == 6 || $status == 7){
$query->condition('wd.status',$status);
}elseif($user_type == 'writer'){
$query->condition('wd.writer_id',$user_id);
$db_or = db_or();
$db_and = db_and();
$db_and->condition('wd.status',2);
$db_and->isNull('wd.editor_id');
$db_or->condition('wd.status',4);
$db_or->condition('wd.status',1);
$db_or->condition($db_and);
$query->condition($db_or);
}else if($user_type == 'editor'){
$query->condition('wd.editor_id',$user_id);
$db_or = db_or();
$db_and = db_and();
$db_and->condition('wd.status',2);
$db_and->isNotNull('wd.editor_id');
$db_or->condition('wd.status',3);
$db_or->condition($db_and);
$query->condition($db_or);
}
//-----------------------------------------------------------------------------------------
$completed_sku = $query->execute()->fetchAll();
इससे आपको अंदाजा हो जाएगा कि Drupal PDO प्रश्नों में कैसे जटिल और या स्थिति को संभाला जा सकता है।
db_or()
यह भी काम करता है जब केवल दो स्थितियां हैं जिन्हें 5 शर्तों में से OR'ed की आवश्यकता है जो AND'ed हैं।$query->where()
ऐसे मामले के लिए, उपयोग करने की आवश्यकता नहीं है ।