Php MongoDB:致命错误:Class';MongoClient';找不到
执行以下PHP代码时: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";
$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()”的机会,它也不起作用。这就解决了我的问题。谢谢。你应该得到一个拥抱!