sql >> Database >  >> NoSQL >> MongoDB

MongoDB:Fatale fout:Klasse 'MongoClient' niet gevonden

TL;DR

De klasse MongoClient maakt deel uit van het oude PECL-pakket mongo maar niet meer van het up-to-date mongodb-pakket.

En aangezien je de mongodb . hebt extensie geïnstalleerd, en niet de mongo één, dit is waarom je de foutmelding krijgt

Fatal error: Class 'MongoClient' not found

Op MongoDB PHP-stuurprogramma github repo, de release-opmerking over de versie 1.0.0, stelt ontwikkelaars voor om MongoDB\Driver\Manager te gebruiken in plaats van MongoClient

Wijzigingen ten opzichte van onze oude mongo-extensie

Het belangrijkste is dat de MongoClient-, MongoDB- en MongoCollection-klassen van het oude stuurprogramma zijn verouderd door de MongoDB\Driver\Manager-klasse, de nieuwe gateway voor het verbinden en uitvoeren van query's, opdrachten en schrijfbewerkingen.

Dus, hier is de documentatie van de vervangende klasse en het codefragment dat de jouwe zou moeten vervangen:

$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");

Omdat de documentatie erom vraagt, is de klasse verouderd.

Waarschuwing Deze extensie die deze klasse definieert, is verouderd. In plaats daarvan moet de MongoDB-extensie worden gebruikt. Alternatieven voor deze klasse zijn onder meer:

  • MongoDB\Driver\Manager

Van wat ik heb gelezen in hun github-repository-releasegeschiedenis, is de klasse die je probeert te gebruiken verouderd sinds de versie van mongodb 1.0.0 , dus op de versie 1.6.0 jij bent, deze klasse maakt niet eens deel uit van de dll niet meer.

Dat wordt bevestigd door dit probleem op hun github

derickr heeft gereageerd op 16 april

MongoClient is een klasse van de oude legacydriver en zou in deze niet beschikbaar moeten zijn. Het nieuwe stuurprogramma heeft \MongoDB\Driver\Manager en de bijbehorende bibliotheek heeft\MongoDB\Client.

U moet ofwel de oude legacy-extensie installeren (pecl installmongo) en PHP 5.x gebruiken, of uw code bijwerken om deze nieuwe driverklassen te gebruiken, aangezien de oude driver niet beschikbaar is voor PHP 7. Er is een upgradehandleiding op http:// mongodb.github.io/mongo-php-library/upgrade-guide/

Een andere manier, zoals voorgesteld door het hierboven geciteerde MongoDB-lid, is om deze pecl-extensie te gebruiken:https://pecl.php.net/package/mongo in plaats van https://pel.php.net/package/mongodb maar alstublieft ook let op de waarschuwing daar waarin staat:

Dit pakket is vervangen, maar wordt nog steeds onderhouden voor bugs en beveiligingsoplossingen.



  1. MongoDB Java Driver databaseverbinding pooling met Tomcat

  2. MongoError:kon geen verbinding maken met de server bij de eerste verbinding

  3. Hoe redis bijwerken na het bijwerken van de database?

  4. Flask-Mail en Redis Queue bibliotheekintegratie geven fout