【问题标题】:MongoDB does not seem to want to push to arrayMongoDB似乎不想推送到数组
【发布时间】:2013-01-19 04:11:24
【问题描述】:

我正在制作一个在线购物车,但在将“添加到购物车”添加到商品时遇到了很大的问题

 $collection->update(
                array('session' => $_SESSION["redi-Shop"],
                array('$push'=>
                array('items'=> $_POST["item"])
                )));

当客户选择他们的第一个项目添加到购物车时,它工作正常

   $collection->insert(
   array('session' => $_SESSION["redi-Shop"],
   'status' => "cart",
   'items' =>$_POST['item']));

但是在添加了第一项之后,我就不能再添加了。

请任何建议都会有所帮助。

【问题讨论】:

  • 如果你让它安全更新并打印出函数的返回 MongoDB 说什么?
  • 如果您使用的是 PHP 驱动程序的 v1.3+,只需在更新调用周围包裹一个 var_dump() 并在此处发布,否则如果您使用的是 1.3 之前的版本,则添加 array('safe' => true) 作为第三个更新调用的参数和var_dump 也在这里

标签: php mongodb insert push shopping-cart


【解决方案1】:

第一次插入时,items 字段不是数组(可能是字符串)。

根据 mongodb $push doc

如果 $push 语句中指定的字段,操作将失败 不是数组。

将插入操作更改为:

$collection->insert(
   array(
      'session' => $_SESSION["redi-Shop"],
      'status' => "cart",
      'items' => array($_POST['item'])
   ));

然后运行更新查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多