0

如何同时插入(如果未添加则更新)两个字段?它适用于单个领域,但不再适用于两个领域。

难道我做错了什么?:

$db->url->update(   
      array("url" => $linkurlcache),
      array('$set' => array('url' => $linkurlcache, 'pos' => $rand_num)),
      array("upsert" => true),
      array("multi" => true)
);
4

1 回答 1

0

我真的很讨厌不得不回答我自己的问题。我会删除它,但我在任何网站上都找不到解决方案。

无论如何,array("multi" => true)考虑到我们正在调用更新函数,这很有意义,但这是错误的。

正确的解决方案是没有它!只是:

$db->url->update(   
      array("field1" => $field1),
      array('$set' => array('field1' => $field1, 'field2' => $field2)),
      array("upsert" => true)
);

因为upsert实际上进行了插入(如果查询不匹配)。

于 2012-11-28T21:55:15.583 回答