【问题标题】:drupal 7 db_select with OR statement带有 OR 语句的 drupal 7 db_select
【发布时间】:2012-08-30 12:28:07
【问题描述】:

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

            $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'], '=') 不起作用。

我需要匹配我的数据库中 cid1cid2 中的记录。

【问题讨论】:

    标签: database drupal-7


    【解决方案1】:

    您必须使用 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))
    

    【讨论】:

    • 谢谢。我之前看到过,但没有引起足够的重视
    • 祝你好运! Drupal 有时会让人困惑,但我有点喜欢它!
    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多