使用php_mongodb扩展将MongoDB连接到PHP的错误和警告

时间:2017-10-19 11:47:26

标签: php mongodb wamp php-5.6

我在Windows 10上安装了MongoDB PHP驱动程序(我使用配备PHP 5.6.25的WAMP。遵循我在http://php.net/manual/en/mongodb.installation.windows.php找到的结构,我还安装了 libbson 和{strong> libmongoc 库(按要求提出要求),如http://php.net/manual/en/mongodb.requirements.php所示 然后,我将MongoDB,libbson和libmongoc的bin文件夹添加到系统路径中 但是,即使我可以在WAMP的扩展列表中看到php_mongodb扩展名,启动phpinfo(),mongo扩展名也不会与其他扩展名一起出现。
此外,尝试使用

连接到我的数据库
h1 + ol, h1 + ul, h2 + ol, h2 + ul, h3 + ol, h3 + ul, h4 + ol, h4 + ul {
}

我收到了错误

  

致命错误:Class' MongoClient'在第21行的C:\ wamp64 \ www \ galileo \ index.php>中找不到

初看,读取这个错误,似乎PHP正在寻找不正确文件夹中的php_mongodb扩展名,即 C:\ wamp64 \ www \ galileo \ index.php (其中放置我的项目的索引页面而不是正确的 C:\ wamp64 \ bin \ php \ php5.6.25 \ ext 所有扩展名。
但是,看看php日志文件 php_error.log ,我还发现了一条警告说:

  

PHP警告:PHP启动:无法加载动态库' c:/wamp64/bin/php/php5.6.25/ext/php_mongodb.dll' - Il sistema operativononpu�seguire%1。   在第0行的未知中。

(不是说意大利语,后面的短语 - 意味着操作系统无法执行%1 ,即使我无法想象%1 代表)。
即使使用新类 MongoDB \ Driver \ Manager ,我也会收到错误

  

致命错误:Class' MongoDB \ Driver \ Manager'在第21行的C:\ wamp64 \ www \ galileo \ index.php中找不到

和同样的警告。
您是否在我所描述的安装过程中发现了一些错误或遗忘,如果没有,您是否知道如何解决问题?

2 个答案:

答案 0 :(得分:0)

你不应该使用' MongoClient类'不再使用此定义此类的扩展。看看here

相反,您应该使用MongoDB \ Driver \ Manager类。请阅读http://php.net/manual/en/class.mongodb-driver-manager.php

并且在php中设置必须是这样的:

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

如果你仍然使用旧班;您需要安装旧的旧版扩展(pecl install mongo)并使用PHP 5.x,或者更新代码以使用这个新的驱动程序类,因为旧的驱动程序不适用于PHP 7。有升级here指南。

最后一部分是关于github上本期杂志的回答:https://github.com/mongodb/mongo-php-driver/issues/300

答案 1 :(得分:0)

问题肯定与WAMP有关,我认为与他的文件夹中的多个php.ini有关。事实上,在 apache 文件夹中,你可以找到一个无法修改的php.ini文件,否则什么都不起作用;同时,除了在扩展名列表中显示mongodb扩展名外,对 php 文件夹中的php.ini文件所做的任何更改似乎都没有效果。
所以,我尝试使用XAMPP,如video tutorial中所建议的那样有效。使用Composer我能够安装PHP库,而不仅仅是驱动程序。