2014-09-29 45 views
0

我有以下代碼:PHP Couchbase setMulti怪異輸出

$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的文檔聲明該函數返回一個布爾值,但是在這裏它返回一個數組。

謝謝!

回答

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

$id是Couchbase數據的關鍵。

$document是json數據