如何同时插入(如果未添加则更新)两个字段?它适用于单个领域,但不再适用于两个领域。
难道我做错了什么?:
$db->url->update(
array("url" => $linkurlcache),
array('$set' => array('url' => $linkurlcache, 'pos' => $rand_num)),
array("upsert" => true),
array("multi" => true)
);
我真的很讨厌不得不回答我自己的问题。我会删除它,但我在任何网站上都找不到解决方案。
无论如何,array("multi" => true)
考虑到我们正在调用更新函数,这很有意义,但这是错误的。
正确的解决方案是没有它!只是:
$db->url->update(
array("field1" => $field1),
array('$set' => array('field1' => $field1, 'field2' => $field2)),
array("upsert" => true)
);
因为upsert
实际上进行了插入(如果查询不匹配)。