0

2 つのフィールドを同時にアップサート (追加されていない場合は更新) するにはどうすればよいですか? 単一のフィールドでは機能しましたが、2 つのフィールドでは機能しなくなりました。

私は何か間違ったことをしていますか?:

$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)update関数を呼び出していることを考えると、非常に理にかなっていますが、それは間違っています。

正しい解決策はそれなしです!ただ:

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

実際に挿入を行うためupsert(クエリが一致しない場合)。

于 2012-11-28T21:55:15.583 に答える