Php 类别';MongoClient';找不到

Php 类别';MongoClient';找不到,php,mongodb,connect,Php,Mongodb,Connect,我正在尝试运行以下代码: <?php $m = new MongoClient("mongodb://54.72.237.242"); $db = $m->tilbud; ?> 我一整天都在读关于这个问题的书,但任何东西都能解决我的问题(我想这是我做错了什么) 我下载了php_mongo.dll,在xampp/php/ext中复制了它,并在php.ini归档文件中添加了extension=php_mongo.dll 我又添加了4个dll,因为我不确定要使用哪一个:

我正在尝试运行以下代码:

<?php

$m = new MongoClient("mongodb://54.72.237.242"); 
$db = $m->tilbud; 

?>
我一整天都在读关于这个问题的书,但任何东西都能解决我的问题(我想这是我做错了什么)

我下载了php_mongo.dll,在xampp/php/ext中复制了它,并在php.ini归档文件中添加了
extension=php_mongo.dll

我又添加了4个dll,因为我不确定要使用哪一个:

  • extension=php_mongo-1.5.4-5.5-vc11-nts
  • extension=php_mongo-1.5.4-5.5-vc11
  • extension=php\u mongo-1.5.4-5.5-vc11-nts-x86\u 64
  • extension=php\u mongo-1.5.4-5.5-vc11-x86\u 64
所以现在我收到5个警告,而不是一个。最后,我想其中一个会起作用,我会删除另外4个

我尝试过的东西,我确信它们是好的:

  • 扩展名_dir指向正确的文件夹
  • 我修改的php.ini是xammp加载的
  • Phpinfo没有显示任何关于mongo的信息
我还能试什么

编辑

我试过了

已加载回显扩展名(“mongo”)?“已加载”:“未加载\n”

它总是说“未加载”

编辑

终于!
问题是dll的名称。它必须是“php_mongo.dll”,正如我在本文开头所说的那样,我正试图加载完整的名称dll。因此,我为自己更改了正确的dll(
extension=php_mongo-1.5.4-5.5-vc11
)为
extension=php_mongo.dll
,瞧

您尚未安装MongoDB PHP驱动程序,请查看此链接

更新来源

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
安装MongoDB PHP驱动程序

sudo apt-get install php5-dev php5-cli php-pear -y
sudo pecl install mongo
打开php.ini文件并添加:

extension=mongo.so
重新启动apache

sudo /etc/init.d/apache2 restart
其他帮助信息:

这将有助于查找php.ini文件:

php -i | grep 'Configuration File'
在Ubuntu上显示如下:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
请注意,您可以从cli(命令行)运行此命令,因此对于真正的php.ini,请转到文件夹apache2,而不是cli:)

第页:

注意:Windows用户的其他DLL依赖项:


为了使此扩展正常工作,Windows系统路径必须有可用的DLL文件

得到相同的错误,现在它已解决。
我正在使用LinuxMint。为了解决这个问题,我在两个目录中添加了
extension=mongo.so

  • /etc/php5/cli/php.ini
  • /etc/php5/apache2/php.ini

您的php版本和dll文件版本应相同检查是否版本不相同,然后根据可用的dll版本更新您的xampp php。

对于本页上安装了php 7的用户:

MongoCLient
类由
pecl-install-mongo
提供。 但是,
pecl/mongo
不适用于php7,并且不推荐使用
pecl/mongodb
。但是使用
pecl/mongodb
时,您需要使用而不是(页面上的警告也这么说)

请参阅以获取进一步阅读

这就是说,您需要在PHP
MongoDB\Driver\Manager
之上有一个抽象层。这是由提供的

您需要重构以下内容:

  • \MongoClient
    \MongoDB\Client
  • \MongoCollection
    \MongoDB\Collection
  • \MongoClient->selectDB
    \MongoDB\Client->selectDatabase
  • \MongoClient->listDBs
    \MongoDB\Client->listDatabases
    • 此外,输出不是数组而是迭代器,因此您需要使用
      迭代器\u to_array
      ,并编辑如何使用结果对象
  • \MongoCollection->getName
    \MongoDB\Collection->getCollectionName
  • \MongoCollection->update
    \MongoDB\Collection->updateOne
    updateMany
  • \MongoCollection->remove
    \MongoDB\Collection->deleteOne
  • \MongoCollection->batchInsert
    \MongoDB\Collection->insertMany

安装驱动程序,例如php5.6:

sudo apt-get install php5.6-mongo

答案确实是按照指示去做。 在创建新的mongodb对象之前,我错过了非常重要的require行:

<?php

require 'vendor/autoload.php';

$client = new MongoDB\Client("mongodb://localhost:27017");

下载dll是不够的。按照此处的安装说明进行操作:谢谢,但我已经按照这些说明进行了操作。相关问题:如果需要将其集成到安装脚本中,请使用
printf“\n”| pecl install mongo
。原始问题中提到了
C:\xampp\htdocs
,这表明他们正在使用Windows,因此,这些命令都不会对他们有任何帮助。说得好,谢谢。我希望我的答案对所有使用linux的人仍然有用。解决了!我对扩展名有问题,extension=mongodb.so->mongo.soYou也可以在php mongodb客户端上使用这个插件,使用新驱动程序上的旧方法和类:+1来响应这个响应,但它对我有帮助,因为我在这个存储库之前添加了这个插件
<?php

require 'vendor/autoload.php';

$client = new MongoDB\Client("mongodb://localhost:27017");
composer require mongodb/mongodb