【发布时间】:2012-07-23 20:05:31
【问题描述】:
我在使用 PHP 和 Javascript 的 MongoDB 时遇到问题。
1) 我将一个文档写入集合并验证它是否存在。
{
"_id": ObjectId("500d9f072d854e2001000018"),
"field1": "happenstance",
"mydata": "balls grinders",
"desc": "johnsig"
}
2) 我使用 javascript 通过调用 php 程序从集合中获取记录。
function fetch(){
$.ajax({
url: "sbugger.php",
dataType: "json",
data: "mode=fetch",
success: function(data){
record = data;
}
});
}
3) 我修改了“desc”元素并通过将文档传回php程序来保存文档
function save(){
record.desc=" HELLO THERE FELLA";
jString = encodeURIComponent(JSON.stringify(record));
myData = "mode=save&record="+jString;
url = "sbugger.php";
$.ajax({
url: url,
type: 'POST',
data: myData,
success: function(data){
document.write(data);
} });
}
在php端的代码是:
$stuff = json_decode($_REQUEST["record"],true);
$collection->save($stuff);
var_dump($stuff);
var_dump($db->lastError());
因为我没有修改 $id 我假设 这将简单地更新记录。
相反,我得到了这个 var_dump:
object(stdClass)[4]
public '_id' =>
object(stdClass)[5]
public '$id' => string '500d9f072d854e2001000018' (length=24)
public 'field1' => string 'happenstance' (length=12)
public 'mydata' => string 'balls grinders' (length=15)
public 'desc' => string ' HELLO THERE FELLA' (length=18)
还有这个 lastError 消息
数组 'err' => 字符串'无效运算符:$id' (length=21) '代码' => int 10068 'n' => int 0 '最后一次' => 对象(MongoTimestamp)[8] 公共“秒”=> int 1343070014 公共'inc' => int 1 'connectionId' => int 56143 'ok' => 浮动 1
这 1.5 天我一直在用头撞墙。
任何 MongoDB 专家可以帮助我吗?
附:如果我只停留在 php 程序中,则查找和保存工作完美。 好像来回传递json的时候有问题。
【问题讨论】:
标签: ajax json mongodb save parameter-passing