Come posso inviare (aggiornare se non aggiunto) due campi contemporaneamente? Ha funzionato per un singolo campo, ma non funziona più per due.
Sto facendo qualcosa di sbagliato?:
$db->url->update(
array("url" => $linkurlcache),
array("$set" => array("url" => $linkurlcache, "pos" => $rand_num)),
array("upsert" => true),
array("multi" => true)
);
risposte:
0 per risposta № 1Odio davvero dover rispondere alla mia stessa domanda. L'avrei cancellato ma non riuscivo a trovare una soluzione su nessun sito web.
Comunque array("multi" => true)
ha molto senso considerando che stiamo chiamando la funzione di aggiornamento, ma è sbagliato.
La soluzione corretta è senza di essa! Appena:
$db->url->update(
array("field1" => $field1),
array("$set" => array("field1" => $field1, "field2" => $field2)),
array("upsert" => true)
);
Perché upsert
fa effettivamente un inserto (se la query non corrisponde).