programing

'MongoClient' 클래스를 찾을 수 없습니다.

stoneblock 2023. 7. 13. 20:20

'MongoClient' 클래스를 찾을 수 없습니다.

이 코드를 실행하려고 합니다.

<?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.dllphp.ini 아카이브에 있습니다.

어떤 dll을 사용해야 할지 잘 몰라서 dll을 4개 더 추가했습니다.

  • 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

그래서 저는 지금 경고를 하나 대신에 5개를 받고 있습니다.마지막에는 그 중 하나가 작동할 것으로 예상하고 나머지 4개는 삭제하겠습니다.

제가 시도한 것들은 문제가 없다고 확신합니다.

  • extension_dir가 올바른 폴더를 가리키고 있습니다.
  • 제가 수정한 php.ini는 xammp를 로드하는 것입니다.
  • 피핀포는 몽고에 대해 아무것도 보여주지 않습니다.

뭘 더 해볼 수 있겠어요?

편집

나는 노력했다.

echo extension_loaded "mongo") ? ? "loaded\n" : "not loaded\n";

항상 '미탑재'라고 표시됩니다.

편집

드디어!문제는 DLL의 이름이었습니다.'php_mongo.dll'이어야 하며, 이 게시물 처음에 말씀드린 대로 풀네임 dll을 로드하려고 했습니다.그래서 나는 나에게 맞는 dll을 바꿨습니다 (extension=php_mongo-1.5.4-5.5-vc11의 경우extension=php_mongo.dll그리고 voila!

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 드라이버 설치

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/mongophp7에는 사용할 수 없으며 다음을 위해 더 이상 사용되지 않습니다.pecl/mongodb하지만 함께pecl/mongodbMongoClient 대신 MongoDB\Driver\Manager를 사용해야 합니다(페이지의 경고에도 그렇게 표시됨).

자세한 내용은 여기를 참조하십시오.

즉, PHP 위에 추상화 계층이 필요합니다.MongoDB\Driver\Managermongodb/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

답은 지시사항을 따르는 것입니다.새 mongodb 개체를 만들기 전에 반드시 필요한 매우 중요한 요구 사항 행을 누락했습니다.

<?php

require 'vendor/autoload.php';

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

물론 지침에 따라 프로젝트 루트에서 이 명령을 실행해야 합니다.

composer require mongodb/mongodb

동일한 오류가 발생하면 해결됩니다.
저는 리눅스 민트를 사용하고 있습니다.이 문제를 해결하기 위해 추가했습니다.extension=mongo.so 개의 두개디리에서토렉:

  • /etc/sys5/cli/sys.ini
  • /etc/sys5/sys2/sys.ini

드라이버를 설치합니다. 예를 들어 php5가 있습니다.6:

sudo apt-get install php5.6-mongo

페이지에서:

참고: Windows 사용자에 대한 추가 DLL 종속성:

이 확장자가 작동하려면 Windows 시스템 PATH에서 사용할 수 있어야 하는 DLL 파일이 있습니다.

당신의 php 버전과 dll 파일 버전은 동일해야 합니다. 버전이 동일하지 않으면 확인하고 사용 가능한 dll 버전에 따라 xampp php를 업데이트하십시오.

언급URL : https://stackoverflow.com/questions/24533938/class-mongoclient-not-found