使用PHP和Curl使用CouchDB

2020年12月31日19:42:22 发表评论 79 次浏览

介绍

了解如何在PHP中使用CouchDB。尽管在为PHP项目选择数据库时, 通常将MySQL作为默认选择, 但CouchDB是许多项目的绝佳替代选择。

为什么选择MySQL上的CouchDB?

CouchDB通过其API接受JSON查询和文档。 JSON越来越普及, 对于熟悉JSON但对学习SQL不感兴趣的开发人员而言, CouchDB是自然的选择。

CouchDB文档等效于表中的MySQL记录。 CouchDB的设计使每个文档都可以具有自己的结构。与MySQL不同, CouchDB旨在允许你添加字段或将其保留为空白, 而无需更改整个数据库结构。

CouchDB还提供了一种简单的复制方法, 当进行任何更改时, 该方法将自动在本地或远程主机上复制数据库。

CouchDB不是像MySQL这样的关系数据库。但是, 许多项目不要求使用关系数据库。如果你只是将数据插入表中和/或将其从表中拉出以在页面上显示, 则不需要关系数据库。

要求

  • 安装了CouchDB的云服务器(Ubuntu 16.04)。

要安装CouchDB, 请按照本文中的说明进行操作在Ubuntu 16.04上安装和使用CouchDB。有关基本的CouchDB命令的信息, 请参见我们的文章从命令行使用CouchDB.

示例CouchDB数据库

在本教程中, 我们将使用一个包含本地餐厅评论的简单数据库。从命令行使用以下命令创建该数据库并插入示例记录:

curl -X PUT http://127.0.0.1:5984/reviews
curl -X PUT http://127.0.0.1:5984/reviews/01 -d '{"reviewer_name":"Ben", "stars":"5", "details":"Love the calzone!"}'

使用Curl与CouchDB一起使用

首先, 你需要安装PHP的卷曲服务器上的软件包:

  • PHP 7.0以上须藤apt-get install php-curl
  • PHP5须藤apt-get install php5-curl

然后重新启动Apache以使更改生效:

sudo systemctl restart apache2

注意:使用以下命令查看PHP的安装版本:

php -v

Curl实用程序是从命令行使用Curl的最简单方法, 因此它是创建PHP脚本时很自然的起点。你需要先初始化Curl:

$curl = curl_init();

然后将你要检索的URL传递给Curl:

curl_setopt($curl, CURLOPT_URL, 'http://127.0.0.1:5984/_all_dbs');

接下来, 对结果执行操作。在这种情况下, 我们将检索服务器上的数据库列表, 并将该列表打印到浏览器:

$db_list = curl_exec($curl);
echo $db_list;

最后, 关闭Curl连接:

curl_close($curl);

完整的脚本显示为:

<?php

  // Initialize Curl
  $curl = curl_init();

  // Pass Curl the URL
  curl_setopt($curl, CURLOPT_URL, 'http://127.0.0.1:5984/_all_dbs');

  // Perform actions
  $db_list = curl_exec($curl);
  echo $db_list;

  // Close Curl
  curl_close($curl);

?>

要运行其他查询, 请更改URL。例如, 要查看我们在示例中创建的文档评论数据库, 在上面的脚本中替换以下行:

curl_setopt($curl, CURLOPT_URL, 'http://127.0.0.1:5984/reviews/01');

浏览器将以JSON格式显示文档的内容:{" _id":" 01", " _ rev":" 1-8ce1d23b7455705c3c2cbeeb86d8ccf5", " reviewer_name":" Ben", " stars":" 5", " details ":"爱calzone!"} 1

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: