WEB开发网
开发学院数据库MySQL 针对PHP开发人员的CouchDB基础知识 阅读

针对PHP开发人员的CouchDB基础知识

 2010-10-06 20:43:22 来源:WEB开发网   
核心提示:[disk_format_version] => 4 ) 接下来,从歌曲数据库中检索一个文档,针对PHP开发人员的CouchDB基础知识(4),清单 5 给出了所需代码, try {$doc = $client->getDoc('whatever_you_like');} catch (
[disk_format_version] => 4
)
 

接下来,从歌曲数据库中检索一个文档。清单 5 给出了所需代码。


 

  
try {
$doc = $client->getDoc('whatever_you_like');
} catch (Exception $e) {
if ( $e->code() == 404 ) {
echo "Document not found\n";
} else {
echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
}
exit(1);
}
print_r($doc);
 

清单 6 给出了响应。

stdClass Object
(
   [_id] => whatever_you_like
   [_rev] => 1-1d915e4c209a2e47e5cf05594f9f951b
   [title] => Whatever You Like
   [artist] => T.I.
   [album] => Paper Trail
)
  

很不错,但是如何对一个文档进行更新呢?可以做的更新有两种:更改现有字段值;添加新字段和新值。对于后者,可以使用箭头表示法(比如 $doc->new_field),然后通过 storeDoc() 保存更改。

清单 7 显示了更新一个文档所需的代码。

$doc->genre = 'hip-hop';
$doc->year = 2008;
try {
     $response = $client->storeDoc($doc);
} catch (Exception $e) {
     echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
     exit(1);
}

 

运行此代码,然后就可以检索这个文档 ID 并获得

清单 8 内所示的结果。

stdClass Object
(
   [_id] => whatever_you_like
   [_rev] => 2-12513a362693b300928aa45f82faed83
   [title] => Whatever You Like
   [artist] => T.I.
   [album] => Paper Trail
   [genre] => hip-hop
   [year] => 2008
)
   
 

注意到 _rev 属性已经从之前的 1-whatever 增加为 2-whatever。借此,就可以很容易地判断已经发生了更改。

那么,该如何在数据库内存储一个新文档呢?您可以实例化一个新对象并使用箭头表示法来填充文档内的字段。

清单 9 显示了所需代码。

$song = new stdClass();
$song->_id = "in_the_meantime";
$song->title = "In the Meantime";
$song->album = "Resident Alien";
$song->artist = "Space Hog";
$song->genre = "Alternative";
$song->year = 1995;

try {
 $response = $client->storeDoc($song);
} catch (Exception $e) {
 echo "Error: ".$e->getMessage()." (errcode=".$e->getCode().")\n";
 exit(1);
}

上一页  1 2 3 4 5 6  下一页

Tags:针对 PHP 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接