在Drupal 7中,简单的更新工作如下:
$num_updated = db_update('joke')
->fields(array(
'punchline' => 'Take my wife please!',
))
->condition('nid', 3, '>=')
->execute();
但如果我有多个条件(比如nid> = 3和uid> = 2)该怎么办?写点如下:
$num_updated = db_update('joke')
->fields(array(
'punchline' => 'Take my wife please!',
))
->condition('nid', 3, '>=')
->condition('uid', 2, '>=')
->execute();
似乎不起作用。有什么想法吗?
答案 0 :(得分:8)
你所写的内容相当于:
'...WHERE (NID >= 3 AND UID >= 2)"
如果你想要OR条件,你需要将语句嵌套(不,它不是很直观):
->condition(db_or()->condition('NID'', 3, '>=')->condition('UID', 2, '>='))
还有db_and()[链接多个条件方法的默认值]和嵌套时可以使用的db_xor()。