PHP Couchbase setMulti奇怪的输出

时间:2014-09-29 09:24:52

标签: php couchbase

我有以下代码:

$objDriver = new Couchbase($strHostname . ':' . $strPort, $strUsername, $strPassword, $strDataBucket, $blnPersistent);

$arrDocs = array(
    array(
        'id' => 1,
        'document' => json_encode(array(
            'test' => 'test',
            'x' => 'y'
        ))
    ),
    array(
        'id' => 2,
        'document' => json_encode(array(
            'test1' => 'test1',
            'y' => 'x'
        ))
    )
);

var_dump($objDriver->setMulti($arrDocs, 360));
var_dump($objDriver->get(1));
var_dump($objDriver->get(2));

该代码的输出是:

array(2) {
  ["1"]=>
  string(19) "2871475064714901504"
  ["0"]=>
  string(19) "5562107574183606272"
}
array(2) {
  ["id"]=>
  int(2)
  ["document"]=>
  string(25) "{"test1":"test1","y":"x"}"
}
bool(false)

似乎我只能得到第二个文件,这真的很奇怪。 setMulti(http://www.couchbase.com/autodocs/couchbase-php-client-1.1.5/classes/Couchbase.html#method_setMulti)上的文档:setMulti(array $documents, integer $expiry, integer $persist_to, integer $replicate_to) : boolean表明文档必须采用数组(id,document)对的形式,所以我的代码似乎是正确的。

正如您所看到的,setMulti上的文档声明该函数返回一个布尔值,但它返回一个数组。

谢谢!

1 个答案:

答案 0 :(得分:0)

$cb_data = array(
array($id => $document),
array($id1 => $document1),
...
)

$id是Couchbase数据的关键。

$document是json数据