para libreria insertone extension conector php mongodb connect

libreria - mongodb php 7.2 extension



Class ''MongoClient'' no encontrado (7)

Estoy tratando de hacer que este código se ejecute:

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

Cada vez que tengo el mismo error:

Fatal error: Class ''MongoClient'' not found in C:/xampp/htdocs/conexion.php

He estado leyendo sobre este problema todo el día, pero cualquier cosa resuelve mi problema (creo que es algo que estoy haciendo mal).

Descargué php_mongo.dll, lo copié en xampp / php / ext y agregué extension=php_mongo.dll en el archivo php.ini.

He agregado 4 dll más porque no estoy seguro de cuál debo usar:

  • 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

Así que ahora recibo 5 advertencias en lugar de una. Al final, creo que uno de ellos funcionará y borraré el otro 4.

Cosas que probé y estoy seguro de que están bien:

  • La extensión_dir apunta a la carpeta correcta.
  • El php.ini que modifiqué es el que carga xammp.
  • Phpinfo no muestra nada sobre mongo.

¿Qué más puedo probar?

Editar

Lo intenté

echo extension_loaded ("mongo")? "cargado / n": "no cargado / n";

y siempre dice ''no cargado''.

Editar

¡Finalmente! El problema era el nombre del dll. Tiene que ser ''php_mongo.dll'' y estaba tratando de cargar el nombre completo dll como dije al comienzo de esta publicación. Así que cambié el dll correcto para mí ( extension=php_mongo-1.5.4-5.5-vc11 ) para la extension=php_mongo.dll y voilà!


De this página:

Nota: dependencias DLL adicionales para usuarios de Windows:

Para que esta extensión funcione, hay archivos DLL que deben estar disponibles para el sistema de Windows PATH


La respuesta es seguir las instrucciones. Me faltaba la línea de necesidad muy importante que debe venir antes de crear el nuevo objeto mongodb:

<?php require ''vendor/autoload.php''; $client = new MongoDB/Client("mongodb://localhost:27017");

Y, por supuesto, debe ejecutar este comando en la raíz de su proyecto según las instrucciones:

composer require mongodb/mongodb


No ha instalado el controlador PHP de MongoDB, consulte este enlace http://www.php.net/manual/en/mongo.installation.php

Fuentes de actualización

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

Instalar el controlador PHP de MongoDB

sudo apt-get install php5-dev php5-cli php-pear -y sudo pecl install mongo

Abra su archivo php.ini y añádalo:

extension=mongo.so

Reiniciar Apache

sudo /etc/init.d/apache2 restart

Otra información de ayuda:

esto debería ayudar a encontrar su archivo php.ini:

php -i | grep ''Configuration File''

En Ubuntu muestra esto:

Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini

toma nota de que ejecutas este comando desde cli (línea de comando), así que para tu verdadero php.ini ve a la carpeta apache2 en lugar de cli :)


Obteniendo el mismo error y ahora está resuelto.
Estoy usando Linux Mint. Para resolver este problema, agregué extension=mongo.so en dos directorios:

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

Para aquellos que llegan a esta página con PHP 7 instalado:

La clase MongoCLient fue proporcionada por pecl install mongo . Pero pecl/mongo no está disponible para php7 y está obsoleto a favor de pecl/mongodb . Pero con pecl/mongodb necesitará usar MongoDB/Driver/Manager lugar de MongoClient (la advertencia en la página también lo dice).

Mira here para leer más.

Dicho esto, necesitarás una capa de abstracción sobre PHP MongoDB/Driver/Manager . Esto es proporcionado por mongodb/mongo-php-library .

Necesitarás refactorizar cosas como:

  • /MongoClient to /MongoDB/Client
  • /MongoCollection to /MongoDB/Collection
  • /MongoClient->selectDB to /MongoDB/Client->selectDatabase
  • /MongoClient->listDBs to /MongoDB/Client->listDatabases
    • también la salida no es una matriz, sino un iterador, por lo que deberá usar iterator_to_array , junto con las ediciones de cómo usa el objeto resultante
  • /MongoCollection->getName to /MongoDB/Collection->getCollectionName
  • /MongoCollection->update a /MongoDB/Collection->updateOne o updateMany
  • /MongoCollection->remove to /MongoDB/Collection->deleteOne
  • /MongoCollection->batchInsert to /MongoDB/Collection->insertMany

instalar el controlador, tengo por ejemplo php5.6:

sudo apt-get install php5.6-mongo


su versión de php y su versión de archivo dll deben ser las mismas. Si las versiones no son las mismas, actualice su xampp php de acuerdo con la versión de dll disponible.