Вставка данных в MongoDB с помощью PHP

#php #mongodb

#php #mongodb

Вопрос:

Я php 5.6 использую WAMP и хочу вставить документ в MongoDB с помощью PHP. Я делаю это таким образом:

 <?php

   require 'vendor/autoload.php';

   $con = new MongoDBClient("mongodb://localhost:27017");
   echo "successfully";

   $db = $con->selectDatabase('DB');
   echo "Selected";

   $col = $db->selectCollection('myCol');
   $document = array( 
      "name" => "Deny", 
      "password" => "1234"
   );

   $col->insert($document);
   echo "successfully";

   ?>
 

Но это выдает ошибку

Неустранимая ошибка: вызов неопределенного метода MongoDB Collection::insert() в C:wamp64www …

Я прочитал http://php.net/manual/en/mongocollection.insert.php и когда я использую ту же функцию вставки, у меня это не работает.

Комментарии:

1. Используете ли вы эту библиотеку mongodb.github.io/mongo-php-library/api/index.html ?

2. @kcp Есть ссылка на страницу установки?

3. @kcp Это он? https://github.com/mongodb/mongo-php-library

4. Да, это тот.

5. @kcp Я выполнил команду composer require "mongodb/mongodb=^1.0.0" , но как насчет ZIP-файлов?

Ответ №1:

Вместо MongoDBClient используйте MongoClient .

Это работает для меня.

Ответ №2:

Вам необходимо установить библиотеку MongoClient: http://php.net/manual/en/mongo.installation.php

Комментарии:

1. Это расширение устарело, лучше использовать это: mongodb.github.io/mongo-php-library/api/index.html

2. Можете ли вы поделиться ссылкой на страницу установки?

3. @Kristiyan Я не могу его установить. Можете ли вы мне помочь?

Ответ №3:

Вместо метода MongoDB Collection::insert() будет работать использование insertOne() или insertMany()!