带有OR语句的drupal 7 db_select

时间:2012-08-30 12:28:08

标签: database drupal-7

我正在尝试执行以下代码:

            $state  =   db_select('webform_email_confirm', 'wec')
            ->fields('wec')
            ->condition('nid', $form['nid']['#value'], '=')
            ->condition('cid1', $form['cid']['#value'], '=')
            ->or('cid2', $form['cid']['#value'], '=')
            ->execute()
            ->fetchAssoc();

第三个陈述->or('cid2', $form['cid']['#value'], '=')不起作用。

我需要在 cid1 cid2 中匹配数据库中的记录。

1 个答案:

答案 0 :(得分:4)

您必须使用db_or()或$ query-> where构造。

请查看this page了解详情。

所以基本上,试试:

$or = db_or()
         ->condition('cid1', $form['cid']['#value'])
         ->condition('cid2',  $form['cid']['#value']);

$state  = db_select('webform_email_confirm', 'wec')
        ->fields('wec')
        ->condition('nid', $form['nid']['#value'], '=')
        ->condition($or)
        ->execute()
        ->fetchAssoc();

examples on the drupal website也可能有用:

$query
  ->condition('field1', array(1, 2), 'IN')
  ->condition(db_or()->condition('field2', 5)->condition('field3', 6))
// Results in:
// (field1 IN (:db_placeholder_1, :db_placeholder_2) AND (field2 = :db_placeholder3 OR field3 = :db_placeholder_4))