MongoDB: 치명적 오류: 'MongoClient' 클래스를 찾을 수 없습니다.
다음 PHP 코드를 실행할 때:
$m = new MongoClient("mongodb://localhost:27017");
다음 오류가 발생합니다.
치명적 오류: 클래스 'MongoClient'를 찾을 수 없습니다(...)
MongoDB 확장이 제대로 설치된 것 같습니다(복사했습니다).php_mongodb.dll
ext 폴더 및 업데이트됨php.ini
).
PHP는 다음 코드가 로드되었음을 확인하므로 확장이 제대로 실행되고 있는지 확인하는 것 같습니다.
echo extension_loaded("mongodb") ? "loaded\n" : "not loaded\n";
또한.phpinfo()
mongodb 확장이 로드되었음을 나타냅니다.
업데이트: 제 문제는 아직 해결되지 않았습니다.
phpinfo()
드라이버가 로드되었음을 명확하게 나타냅니다.
하지만 저는 여전히 같은 치명적인 오류를 받고 있습니다.
TL;DR
학급.MongoClient
레거시 PECL 패키지 mongo의 일부이지만 더 이상 최신 mongodb 패키지의 일부가 아닙니다.
그리고 당신이 가지고 있기 때문에.mongodb
설치된 확장이며, 설치되지 않음mongo
첫째, 이것이 당신이 오류를 얻는 이유입니다.
Fatal error: Class 'MongoClient' not found
MongoDB PHP 드라이버 githubrepo에서 버전 1.0.0에 대한 릴리스 노트는 개발자들에게 사용할 것을 제안하고 있습니다.MongoDB\Driver\Manager
대신에MongoClient
레거시 mongo 확장의 변경 사항
가장 중요한 것은 레거시 드라이버의 MongoClient, MongoDB 및 MongoCollection 클래스가 쿼리, 명령 및 쓰기 작업을 연결하고 실행하기 위한 새로운 게이트웨이인 MongoDB\Driver\Manager 클래스에 의해 폐지되었다는 것입니다.
출처:: https://github.com/mongodb/mongo-php-driver/releases/tag/1.0.0
다음은 교체 클래스 문서와 사용자의 코드를 교체해야 하는 코드 조각입니다.
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
문서에 요청이 표시되므로 클래스는 더 이상 사용되지 않습니다.
경고 이 클래스를 정의하는 이 확장은 더 이상 사용되지 않습니다.대신 MongoDB 확장을 사용해야 합니다.이 클래스의 대안은 다음과 같습니다.
출처: http://php.net/MongoClient
내가 그들의 github 저장소 릴리스 기록에서 읽은 바에 따르면, 당신이 사용하려는 클래스는 버전 이후로 더 이상 사용되지 않았습니다.mongodb 1.0.0
그래서, 버전에서.1.6.0
당신은, 이 수업은 심지어 학교의 일부도 아닙니다.dll
더이상.
데릭은 4월 16일에 논평했습니다.
MongoClient는 이전 레거시 드라이버의 클래스이므로 이 드라이버에서는 사용할 수 없습니다.새 드라이버에는 \MongoDB\Driver\Manager가 있고 함께 제공되는 라이브러리에는 \MongoDB\Client가 있습니다.
이전의 기존 확장자(pecl install mongo)를 설치하고 PHP 5.x를 사용하거나 PHP 7에서 이전 드라이버를 사용할 수 없기 때문에 이 새 드라이버 클래스를 사용하려면 코드를 업데이트해야 합니다.http://mongodb.github.io/mongo-php-library/upgrade-guide/ 에 업그레이드 가이드가 있습니다.
출처: https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288
위에서 인용한 MongoDB 구성원이 제안한 또 다른 방법은 https://pecl.php.net/package/mongodb 대신 https://pecl.php.net/package/mongo 이라는 pecl 확장자를 사용하는 것입니다. 그러나 다음과 같은 경고도 확인하시기 바랍니다.
이 패키지는 대체되었지만 버그 및 보안 수정을 위해 계속 유지 관리됩니다.
MongoDB(mongo-php-library)와 MongoClient(ext-mongo)는 서로 다른 확장입니다.MongoClient 확장이 더 이상 사용되지 않습니다.MongoClient(ext-mongo) 관련 클래스를 사용하려면 다음과 같은 래퍼를 사용합니다;
https://github.com/mitsh/mongo-php-adapter
mongo-php-library 위에 ext-mongo 인터페이스를 제공하는 어댑터
프로젝트에서 아무것도 변경할 필요가 없습니다.설치하고 작곡가와 함께 포함하기만 하면 됩니다.
언급URL : https://stackoverflow.com/questions/37261957/mongodb-fatal-error-class-mongoclient-not-found
'programing' 카테고리의 다른 글
장치에서 Firebase 클라우드 메시징 알림을 수신하지 않음 (0) | 2023.07.08 |
---|---|
두 날짜의 시간이 아닌 날짜 부분만 비교하는 방법은 무엇입니까? (0) | 2023.07.03 |
'git log'가 특정 경로에 대한 변경 사항을 무시하도록 설정 (0) | 2023.07.03 |
numpy에서 배열에 단일 요소 추가 (0) | 2023.07.03 |
vba excel에서 여러 구분 기호로 문자열을 분할하는 방법은 무엇입니까? (0) | 2023.07.03 |