我正在尝试执行以下代码:
$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 中匹配数据库中的记录。
答案 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))