You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP创建MongoDB集合报错:调用未定义方法getEncryptedFieldsMap()

问题分析与解决

这个报错的核心原因是你安装的MongoDB PHP Library版本和php_mongodb扩展版本不兼容:getEncryptedFieldsMap() 是php_mongodb扩展(即你安装的php_mongodb.dll)1.14.0及以上版本才新增的方法,但你的扩展版本低于这个阈值,而你用--ignore-platform-reqs强制跳过了版本兼容性检查,安装了高版本的MongoDB库,导致库调用了扩展里不存在的方法。

解决步骤

1. 确认php_mongodb扩展版本

运行以下命令(或在PHP脚本中输出phpinfo()查看):

php -i | grep "MongoDB extension version"

记下输出的版本号,比如1.13.0。

2. 卸载现有不兼容的库

执行命令移除已安装的包:

composer remove jenssegers/mongodb

3. 安装与扩展版本匹配的库

不要使用--ignore-platform-reqs参数,让Composer自动处理版本兼容:

composer require jenssegers/mongodb

如果Composer提示版本冲突,可先指定与扩展版本匹配的mongodb核心库版本,再安装jenssegers/mongodb。比如你的扩展是1.13.x,就执行:

composer require mongodb/mongodb:1.13.*
composer require jenssegers/mongodb

4. (可选)升级php_mongodb扩展

如果你的PHP版本支持,下载对应PHP版本的最新php_mongodb.dll替换现有文件,重启Web服务后,再重新安装库(无需加--ignore-platform-reqs),即可使用最新功能。

验证

重新运行你的代码,应该能正常创建集合。

内容的提问来源于stack exchange,提问作者user19241159

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 12:11:04