Php MongoDB:致命错误:Class';MongoClient';找不到

Php MongoDB:致命错误:Class';MongoClient';找不到,php,mongodb,Php,Mongodb,执行以下PHP代码时: $m = new MongoClient("mongodb://localhost:27017"); 我得到以下错误: 致命错误:(…)中未找到类“MongoClient” MongoDB扩展似乎安装正确(我将php\u MongoDB.dll复制到ext文件夹并更新了php.ini) PHP似乎确认扩展正在正常运行,因为以下代码确认它已加载: echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";

执行以下PHP代码时:

$m = new MongoClient("mongodb://localhost:27017");
我得到以下错误:

致命错误:(…)中未找到类“MongoClient”

MongoDB扩展似乎安装正确(我将
php\u MongoDB.dll
复制到ext文件夹并更新了
php.ini

PHP似乎确认扩展正在正常运行,因为以下代码确认它已加载:

echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
另外,
phpinfo()
显示mongodb扩展已经加载


更新:我的问题仍未解决

phpinfo()
清楚地显示驱动程序已加载:

但我仍然收到同样的致命错误。

TL;博士 类
MongoClient
是遗留PECL包的一部分,但不再是最新包的一部分

由于您安装了
mongodb
扩展,而不是
mongo
扩展,因此会出现错误

致命错误:找不到类“MongoClient”
在MongoDB PHP驱动程序github repo上,关于版本1.0.0的发行说明建议开发人员使用
MongoDB\driver\Manager
而不是
MongoClient

对传统mongo扩展的更改

最重要的是,传统驱动程序的MongoClient、MongoDB和 MongoCollection类已被 MongoDB\Driver\Manager类,它是用于连接的新网关 以及执行查询、命令和写入操作

资料来源:

因此,以下是应该取代您的代码片段:

$m=new MongoDB\Driver\Manager(“mongodb://localhost:27017");

由于文档提示,该类已被弃用

警告此定义此类的扩展已弃用。相反 应该使用扩展名。这一类的替代方案 包括:

资料来源:


据我所知,您尝试使用的类在
mongodb 1.0.0
版本之后已经过时,因此,在
1.6.0
版本上,该类甚至不再是
dll
的一部分

这一点得到了国际社会的证实

德里克于4月16日发表评论

MongoClient是一个旧遗留类 驱动程序,不应该在这一个。新司机 具有\MongoDB\Driver\Manager,并且附带的库具有 \MongoDB\客户端

您需要安装旧的旧的旧的扩展(pecl安装 mongo)并使用PHP5.x,或更新代码以使用此新驱动程序的 类作为旧驱动程序不适用于PHP7。有一个 升级指南,网址:

资料来源:


正如上面引用的MongoDB成员所建议的,另一种方法是使用此pecl扩展:而不是,但请注意其中的警告:

此软件包已被取代,但仍保留有漏洞和安全修复程序


MongoDB!=MongoClient非常感谢您澄清这一点!如何在WIndows上安装MongoDB PHP库(官方说明仅适用于Linux)?此外,官方说明可能使用“pecl”命令,我没有…根据您的问题,您安装了MongoDB。您现在只需要使用正确的类即可。;)你是上帝派来的!非常感谢,有很多页面被称为“已弃用”,并引用了另一个也已弃用的页面。。PHP手册中的示例显示“$m=new MongoClient()”不再有效,我还尝试了使用“$m=new MongoDB()”的机会,它也不起作用。这就解决了我的问题。谢谢。你应该得到一个拥抱!