Docs 菜单
Docs 主页
/ / /
PHP 库手册

开始使用MongoDB PHP库

MongoDB PHP库是MongoDB PHP扩展的高级抽象,您可以使用它来连接到MongoDB并与部署中存储的数据交互。 本指南向您展示如何创建一个应用程序,使用MongoDB PHP库连接到MongoDB Atlas上托管的MongoDB 集群并查询集群中的数据。

提示

MongoDB Atlas 是完全托管的云数据库服务,旨在托管您的 MongoDB 部署。您可以按照本指南中的步骤创建您的免费(无需信用卡)MongoDB Atlas 部署。

按照本指南将示例PHP应用程序连接到MongoDB Atlas部署。 如果您希望使用不同的驾驶员或编程语言连接MongoDB ,请参阅我们的官方驱动程序的列表。

1

在开始开发之前,请确保本地计算机上安装了以下依赖项:

2

运行以下命令安装 mongodb PHP扩展:

pie install mongodb/mongodb-extension

提示

指定PHP扩展版本

要安装特定版本的PHP扩展,请包含版本号,如以下命令所示:

pie install mongodb/mongodb-extension:^2.1.1

要安装 v 之前的PHP扩展版本,必须使用1.21 pecl 命令。

3

在根目录中,在shell中运行以下命令,为此项目创建一个名为 php-quickstart 的目录:

mkdir php-quickstart

选择与操作系统对应的标签页并运行以下命令,在php-quickstart目录中创建quickstart.php应用程序文件:

cd php-quickstart
touch quickstart.php
cd php-quickstart
type nul > quickstart.php
4

要安装MongoDB PHP库,请在php-quickstart目录中运行以下命令:

composer require mongodb/mongodb

安装该库后,将以下代码添加到quickstart.php文件顶部,以包含 Composer 的autoload.php文件:

<?php
require_once __DIR__ . '/vendor/autoload.php';

完成这些步骤后,您就拥有了一个新的项目目录、一个新的应用程序文件以及安装的库依赖项。

您可以在 MongoDB Atlas 上创建一个免费套餐 MongoDB 部署来存储和管理您的数据。MongoDB Atlas 在云端托管和管理您的 MongoDB 数据库。

1

请按照 Atlas 入门指南中的步骤,设置新的 Atlas 账户并将示例数据加载到新的免费套餐 MongoDB 部署中。

2

创建数据库用户后,将该用户的数据库用户名和数据库保存到安全位置,以便在下一步中使用。

完成这些步骤后,您就在 Atlas 上有了一个新的免费套餐 MongoDB 部署、数据库用户档案以及加载到数据库中的示例数据。

您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。

连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。

要连接到未托管在Atlas上的实例或部署,请参阅选择连接目标。

1

要检索您在上一步中创建的部署的连接字符串,登录您的Atlas帐户并导航到 Database 部分,然后单击新部署的 Connect 按钮。

Atlas 用户界面的集群部分中的连接按钮

然后,从Select database user选择菜单中选择您的用户。 从 选择菜单中选择“PHP”,然后从Driver Version选择菜单中选择与您安装的版本最匹配的版本。

Add connection string into your application code 步骤中选择 String标签页,仅查看连接string 。

2

单击连接string右侧的按钮将其复制到剪贴板,如以下屏幕截图所示:

用户界面中连接 旁边的复制按钮stringAtlas
3

将此连接字符串粘贴到您首选文本编辑器中的文件中,并将<username><password>占位符替换为数据库用户的用户名和密码。

将此文件保存到安全位置,以便在下一步中使用。

完成这些步骤后,您就拥有了与string Atlas集群对应的连接 。

检索 部署的连接string MongoDB Atlas后,您可以从 应用程序连接到该部署并查询PHP Atlas示例数据集。

1

将以下代码复制并粘贴到quickstart.php文件中,该文件将查询sample_mflix数据库中的movies集合:

<?php
require __DIR__ . '/../vendor/autoload.php';
$uri = getenv('MONGODB_URI') ?: throw new RuntimeException(
'Set the MONGODB_URI environment variable to your Atlas URI',
);
$client = new MongoDB\Client($uri);
$collection = $client->sample_mflix->movies;
$filter = ['title' => 'The Shawshank Redemption'];
$result = $collection->findOne($filter);
if ($result) {
echo json_encode($result, JSON_PRETTY_PRINT);
} else {
echo 'Document not found';
}
2

MONGODB_URI 环境变量分配给您从本指南的“创建连接字符串”步骤中复制的连接字符串。您可以通过运行Shell命令或在应用程序中创建 .env文件来分配此变量,如以下标签页所示:

export MONGODB_URI=<connection string>
MONGODB_URI=<connection string>
3

在项目目录中,运行以下shell命令以启动应用程序:

php quickstart.php

命令行输出包含有关检索到的电影文档的详细信息:

{
"_id": {
"$oid": "..."
},
...
"rated": "R",
"metacritic": 80,
"title": "The Shawshank Redemption",
...
}

如果遇到错误或看不到输出,请确保将正确的连接string分配给 MONGODB_URI 环境变量并加载示例数据。

完成这些步骤后,您就拥有一个PHP应用程序,它可以连接到MongoDB 部署、对示例数据运行查询并返回匹配的文档。

恭喜您完成快速入门教程!

注意

如果您在学习本教程时运行问题,请在MongoDB Community论坛中寻求帮助,或使用此页面右侧或右下角的 Rate this page标签页提交反馈。

在本教程中,您创建了一个PHP应用程序,该应用程序连接到MongoDB Atlas上托管的MongoDB 部署,并检索与查询匹配的文档。

通过以下资源了解详情有关MongoDB PHP库的更多信息:

  • 在连接到MongoDB部分了解如何配置MongoDB连接。

  • 了解如何在增删改查查操作部分中执行读取和写入操作。

本节将解决您在安装PHP库及其依赖项时可能遇到的问题。

安装PHP库时,您可能会看到类似于以下代码的头文件错误:

/private/tmp/pear/install/mongodb/php_phongo.c:24:10: fatal error: 'php.h' file not found
#include <php.h>
^~~~~~~

此错误表明 PHP 的构建系统找不到必要的标头。所有PHP扩展都需要标头才能编译。这些标头必须与将使用扩展的PHP运行时相对应。 phpize 命令由 peclpie 调用,通常确保使用正确的标头构建扩展。

如果安装了PHP运行时,相应的标头并不总是自动可用。在许多Linux发行版上,标头通常在单独的php-devphp-devel 包下发布。在 macOS 上,默认PHP运行时不包含标头。用户通常必须使用 Homebrew 安装PHP及其标头。

如果您的系统安装了多个版本的PHP ,则每个版本都有自己的 peclpiephpize 命令。此外,每个PHP运行时可能有针对每个服务器应用程序编程接口 (SAPI)(例如 FPM 和CLI)的单独 php.ini 文件。如果您安装了扩展,但在运行时不可用,请确保使用正确的 peclpie 命令并修改相应的 php.ini文件。

php.ini要查看PHP运行时使用哪个 文件,请查看该特定 SAPI 的 phpinfo() 输出。此外,您可以使用 php_ini_loaded_file() php_ini_scanned_files() 来确定PHP已加载哪些 INI 文件。

要在未加载扩展时调试问题,可以使用工具目录中提供的 detect-extension脚本。您可以从CLI运行此脚本,或将其包含在可供 Web服务器使用的脚本中。该工具可查找系统的潜在问题和安装说明。如果使用 Composer 安装了该库,则可以从供应商目录中调用脚本,如以下代码所示:

php vendor/mongodb/mongodb/tools/detect-extension.php

如果要检查 Web服务器SAPI 的配置,请将该文件包含在可供 Web服务器使用的脚本中,并在浏览器中打开它。确保将脚本包装在 <pre> 标记中,以正确格式化其输出,如以下代码所示:

<pre><?php require(...); ?></pre>

Windows二进制文件可用于PHP版本、线程安全设置(TS 或 NTS)和架构类型(x86 或 x64)的多种组合。未能选择正确的二进制文件会导致尝试在运行时加载扩展 DLL 时出错,如以下示例输出所示:

PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb'

确保您已下载与以下 PHP 运行时属性相对应的 DLL:

  • PHP 版本 ( PHP_VERSION )

  • 线程安全 ( PHP_ZTS )

  • 架构 ( PHP_INT_SIZE )

除了前面的常量之外,这些属性还可以从 phpinfo() 推断出。如果您的系统安装了多个PHP运行时,请查看正确环境的phpinfo() 输出。

您还可以使用上一节中描述的 detect-extension脚本来确定适合您的PHP环境的正确 DLL。

后退

MongoDB PHP 库