私はこのコードを実行しようとしています:
<?php
$m = new MongoClient("mongodb://54.72.237.242");
$db = $m->tilbud;
?>
同じエラーが発生するたびに:
Fatal error: Class 'MongoClient' not found in C:\xampp\htdocs\conexion.php
私はこの問題について一日中読んでいますが、何かが私の問題を解決します(私はそれが間違っていると思います)。
Php_mongo.dllをダウンロードし、xampp/php/extにコピーしてextension=php_mongo.dll
php.iniアーカイブ内。
どちらを使用する必要があるのかわからないため、さらに4つのdllを追加しました。
extension=php_mongo-1.5.4-5.5-vc11-nts
extension=php_mongo-1.5.4-5.5-vc11
extension=php_mongo-1.5.4-5.5-vc11-nts-x86_64
extension=php_mongo-1.5.4-5.5-vc11-x86_64
そのため、1つではなく5つの警告が表示されます。最後に、そのうちの1つが機能し、残りの4つを削除すると思います。
私が試したものは、彼らが大丈夫だと確信しています:
これ以上何ができますか?
編集
私は試した
echo extension_loaded( "mongo")? "loaded\n": "ロードされていません\ n";
そして、常に「ロードされていません」と表示されます。
編集
最後に!問題はdllの名前でした。 「php_mongo.dll」である必要があり、この投稿の冒頭で述べたように、フルネームのdllをロードしようとしました。だから私は正しいDLLを変更しました(extension=php_mongo-1.5.4-5.5-vc11
) ために extension=php_mongo.dll
とvoilà!
MongoDBをインストールしていませんPHPドライバはこのリンクを参照してください http://www.php.net/manual/en/mongo.installation.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 Driver
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の場合は、cliではなくApache2フォルダーに移動してください。
PHP 7がインストールされている状態でこのページに到着した場合:
MongoCLient
クラスはpecl install mongo
によって提供されました。ただし、pecl/mongo
はphp7では使用できず、pecl/mongodb
を優先して廃止されました。ただし、pecl/mongodb
を使用する場合は、 MongoClient の代わりに MongoDB\Driver\Manager を使用する必要があります(ページの警告にもその旨が記載されています)。
詳細については here を参照してください。
つまり、PHP MongoDB\Driver\Manager
。]の上に抽象化レイヤーが必要になります。これは mongodb/mongo-php-library で提供されます。
次のようなものをリファクタリングする必要があります。
\MongoClient
から\MongoDB\Client
\MongoCollection
から\MongoDB\Collection
\MongoClient->selectDB
から\MongoDB\Client->selectDatabase
\MongoClient->listDBs
から\MongoDB\Client->listDatabases
iterator_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");
そしてもちろん、指示に従ってプロジェクトのルートでこのコマンドを実行する必要があります:
composer require mongodb/mongodb
同じエラーを取得し、解決しました。
Linux Mintを使用しています。この問題を解決するために、extension=mongo.so
2つのディレクトリ内:
pHPバージョンとdllファイルバージョンが同じである必要があります。バージョンが同じでない場合はチェックし、利用可能なdllバージョンに従ってxampp phpを更新します。