Overview
MongoDB PHP库是MongoDB PHP扩展的高级抽象,您可以使用它来连接到MongoDB并与部署中存储的数据交互。 本指南向您展示如何创建一个应用程序,使用MongoDB PHP库连接到MongoDB Atlas上托管的MongoDB 集群并查询集群中的数据。
提示
MongoDB Atlas 是完全托管的云数据库服务,旨在托管您的 MongoDB 部署。您可以按照本指南中的步骤创建您的免费(无需信用卡)MongoDB Atlas 部署。
按照本指南将示例PHP应用程序连接到MongoDB Atlas部署。 如果您希望使用不同的驾驶员或编程语言连接MongoDB ,请参阅我们的官方驱动程序的列表。
下载并安装
安装MongoDB PHP扩展
运行以下命令安装 mongodb
PHP扩展:
pie install mongodb/mongodb-extension
提示
指定PHP扩展版本
要安装特定版本的PHP扩展,请包含版本号,如以下命令所示:
pie install mongodb/mongodb-extension:^2.1.1
要安装 v 之前的PHP扩展版本,必须使用1.21 pecl 命令。
完成这些步骤后,您就拥有了一个新的项目目录、一个新的应用程序文件以及安装的库依赖项。
创建 MongoDB 部署
您可以在 MongoDB Atlas 上创建一个免费套餐 MongoDB 部署来存储和管理您的数据。MongoDB Atlas 在云端托管和管理您的 MongoDB 数据库。
在 Atlas 上创建免费的 MongoDB 部署
请按照 Atlas 入门指南中的步骤,设置新的 Atlas 账户并将示例数据加载到新的免费套餐 MongoDB 部署中。
完成这些步骤后,您就在 Atlas 上有了一个新的免费套餐 MongoDB 部署、数据库用户档案以及加载到数据库中的示例数据。
创建连接字符串
您可以通过提供连接 URI(也称为连接字符串)来连接到 MongoDB 部署,它指示驱动程序如何连接到 MongoDB 部署以及连接时的行为方式。
连接字符串包含部署的主机名或 IP 地址和端口、身份验证机制、用户档案(如果适用)以及连接选项。
要连接到未托管在Atlas上的实例或部署,请参阅选择连接目标。
查找 MongoDB Atlas 连接字符串
要检索您在上一步中创建的部署的连接字符串,登录您的Atlas帐户并导航到 Database 部分,然后单击新部署的 Connect 按钮。

然后,从Select database user选择菜单中选择您的用户。 从 选择菜单中选择“PHP”,然后从Driver Version选择菜单中选择与您安装的版本最匹配的版本。
在 Add connection string into your application code 步骤中选择 String标签页,仅查看连接string 。
完成这些步骤后,您就拥有了与string Atlas集群对应的连接 。
运行示例查询
检索 部署的连接string MongoDB Atlas后,您可以从 应用程序连接到该部署并查询PHP Atlas示例数据集。
编辑PHP应用程序文件
将以下代码复制并粘贴到quickstart.php
文件中,该文件将查询sample_mflix
数据库中的movies
集合:
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'; }
完成这些步骤后,您就拥有一个PHP应用程序,它可以连接到MongoDB 部署、对示例数据运行查询并返回匹配的文档。
后续步骤
恭喜您完成快速入门教程!
注意
如果您在学习本教程时运行问题,请在MongoDB Community论坛中寻求帮助,或使用此页面右侧或右下角的 Rate this page标签页提交反馈。
在本教程中,您创建了一个PHP应用程序,该应用程序连接到MongoDB Atlas上托管的MongoDB 部署,并检索与查询匹配的文档。
通过以下资源了解详情有关MongoDB PHP库的更多信息:
故障排除
本节将解决您在安装PHP库及其依赖项时可能遇到的问题。
未找到 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
命令由 pecl
和 pie
调用,通常确保使用正确的标头构建扩展。
如果安装了PHP运行时,相应的标头并不总是自动可用。在许多Linux发行版上,标头通常在单独的php-dev
或php-devel
包下发布。在 macOS 上,默认PHP运行时不包含标头。用户通常必须使用 Homebrew 安装PHP及其标头。
安装多个 PHP 运行时
如果您的系统安装了多个版本的PHP ,则每个版本都有自己的 pecl
、pie
和 phpize
命令。此外,每个PHP运行时可能有针对每个服务器应用程序编程接口 (SAPI)(例如 FPM 和CLI)的单独 php.ini
文件。如果您安装了扩展,但在运行时不可用,请确保使用正确的 pecl
或 pie
命令并修改相应的 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>require(...); </pre>
在 Windows 上加载不兼容的 DLL
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。