【问题标题】:Error and warning connecting MongoDB to PHP using php_mongodb extension使用 php_mongodb 扩展将 MongoDB 连接到 PHP 的错误和警告
【发布时间】:2018-03-31 10:45:49
【问题描述】:

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

连接到我的数据库
<?php
 $mongo=new MongoClient("");
 $db=$mongo->galileo;
 $collection= $db->items;
print_r("Number of documens: "); ?>

我收到了错误

致命错误:在 C:\wamp64\www\galileo\index.php >第 21 行中找不到类“MongoClient”

乍一看,阅读此错误,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 operativo non pu�eseguire %1。 在第 0 行的未知中。

(因为不是意大利语, - 之后的短语表示 操作系统无法执行 %1,即使我无法想象 %1 代表什么)。
即使使用新类 MongoDB\Driver\Manager 我得到错误

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

同样的警告。
您是否注意到我描述的安装过程中存在一些错误或遗忘,如果没有,您知道如何解决问题吗?

【问题讨论】:

    标签: php mongodb wamp php-5.6


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    你不应该再使用“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。@987654323 有升级指南@。

    最后一部分来自derickr在github上本期的回答:https://github.com/mongodb/mongo-php-driver/issues/300

    【讨论】:

    • 我也按照您的建议尝试了 MongoDB\Driver\Manager 但问题仍然存在,即使找不到此类。
    猜你喜欢
    • 1970-01-01
    • 2012-08-12
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2019-12-24
    • 1970-01-01
    相关资源
    最近更新 更多