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