我使用下面的代碼更新現有文檔。它的工作正常。檢查更新推送是否成功
foreach($jArray as $value){
!!some code!!
try {
$collection->update(array("tablename"=>$tablename),array('$push' => array("inventar" => $new_data)));
echo json_encode($collection);
}
catch (MongoConnectionException $e) {
echo '<p>Update failed</p>';
exit();
}
}
JSON響應:
{"w":1,"wtimeout":10000}{"w":1,"wtimeout":10000}
(2個值嘗試更新)
即使沒有表名匹配,意味着沒有更新happend,結果爲w = 1。 爲什麼呢?沒有更新發生,w是1/true?
這會跳出''push''。您是否在這裏使用''''(雙引號)? – ficuscr
它使用''push''加雙引號:'未捕獲異常'MongoException'帶消息'零長度鍵是不允許的,您使用$用雙引號'''' – Piet
對你的最後一條評論不清楚你是說這樣修復它,現在你得到的錯誤信息是有意義的嗎?你理解'$ foo''和'「$ foo」之間的區別是嗎?假設是這樣的。更多這裏... http://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and-double-quoted-strings-in-php – ficuscr