Подключение php в реальном времени к mongodb в mongodb атласе (я знаю, что установка в localhost, но об использовании MongoClient () в godaddy хостинге) [duplicate]

Ваш код должен быть чем-то вроде этого

$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM Users WHERE UserName LIKE '$username'";
echo $query;
$result = mysql_query($query);

if($result === FALSE) {
    die(mysql_error("error message for the user")); 
}

while($row = mysql_fetch_array($result))
{
    echo $row['FirstName'];
}

. После этого вы получите запрос, напечатанный на экране. Попробуйте выполнить этот запрос на своем сервере и посмотрите, дает ли он желаемые результаты. В большинстве случаев ошибка содержится в запросе. Остальная часть кода верна.

29
задан Will 29 December 2015 в 10:11
поделиться

12 ответов

  • Сначала нам нужно установить MongoDB в машину с помощью описанных здесь шагов: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
  • Следующим шагом является установка драйвера MongoDB для использования с PHP.
  • Драйвер MongoDB для PHP версии 5.99.99 или старше: https: // pecl. php.net/package/mongo, чтобы установить это, мы должны использовать: sudo apt-get install php-pear php5-dev sudo pecl install mongo
  • Начиная с PHP 7, это новый driver https://pecl.php.net/package/mongodb Чтобы установить это использование: sudo pecl install mongodb
  • Если вы используете структуру Laravel или проекты с композитором, то эта библиотека является наиболее подходящим: https://github.com/jenssegers/Laravel-MongoDB Используйте версию 3.0.0 для получения PHP 7 и amp; Laravel 5 поддерживает и использует устаревшую версию 2.2.2. Команда Composer: композитор требует jenssegers / mongodb
  • Если вы используете другие фреймворки PHP без композитора, используйте эту библиотеку: https: // github. com / mongodb / mongo-php-library , который также используется в вышеупомянутой библиотеке
3
ответ дан ajayarjunan 1 September 2018 в 10:01
поделиться

Старый вопрос, но новое отличное решение. Просто используйте Mongostead7 автоматический скрипт для установки всех необходимых материалов. Работал для меня просто отлично. Никакой дополнительной работы не требуется.

Используйте ее следующим образом:

sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh
2
ответ дан Aleksandar 1 September 2018 в 10:01
поделиться

Расширение Mongo для PHP версии 5.99.99 или старше было заменено:

https://pecl.php.net/package/mongo

Используйте новый для PHP версии 7.99.99 или старше:

https://pecl.php.net/package/mongodb

Вы можете установить расширение PECL / PEAR автоматически :

pecl install mongodb

или вручную .

Классы также были изменены :

new \MongoClient(); // legacy class!

см. http://php.net/manual/en/book.mongo.php

new \MongoDB\Driver\Manager(); // new classes! 

см. http://php.net/manual/en/set.mongodb.php

Дополнительную информацию о совместимости можно найти здесь:

https: / /docs.mongodb.org/ecosystem/drivers/php/#compatibility

34
ответ дан b.enoit.be 1 September 2018 в 10:01
поделиться

Как подключить php 7.0 с MongoDB в ubuntu 16.04 lts?

1) Установите LAMP, используя следующую ссылку. Он устанавливает Apache2, mysql и php 7.0. https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04

2) Установите сообщество сообщества MongoDB на Ubuntu, используя шаги в следующей ссылке. http://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

3) Введите следующую команду, чтобы получить расширение mongoDB от pecl

sudo apt install php-pear

4) Добавьте в файл php.ini в /etc/php/apache2/7.0

extension=mongodb.so

следующее: Важно: также были изменены классы:

new MongoClient();  //Old Class

new MongoDB\Driver\Manager(); // New Class

Refer - http://php.net/manual/en/set.mongodb.php

7
ответ дан Charlie Fish 1 September 2018 в 10:01
поделиться

В дополнение к ответам и публикации того, что сработало для меня:

1 следовали этому руководству, чтобы установить лампу https://www.digitalocean.com/community/tutorials/how-to-install -inux-apache-mysql-php-lamp-stack-on-ubuntu-16-04 (Третий шаг необходим только для установки клиента mongo)

2 $ sudo apt-get install php7.0-dev

3 $ sudo pecl install mongodb

4 $ sudo nano /etc/php/7.0/apache2/php.ini

Добавить в файл следующую строку:

extension = mongo.so ;

(Возможно, вам нужно указать точное местоположение файла. В моем случае файл находился в /usr/lib/php/20151012/mongodb.so.)

И все это для установки только клиента mongo для php 7.0

Я дополняю ответ Pransh Tiwari

1
ответ дан Guillermo García 1 September 2018 в 10:01
поделиться

Это работало для меня на Ubuntu для PHP7:

sudo apt-get install php7.0-mongodb

1
ответ дан Parth Vora 1 September 2018 в 10:01
поделиться

Вы можете попробовать установить драйвер mongodb с помощью:

sudo apt-get install php-mongodb
3
ответ дан Paul Roub 1 September 2018 в 10:01
поделиться

Я использую php версии 7.0 на ubuntu 16.04. Я даю подробную информацию для установки драйвера / клиента mongo. Сначала я вручную установил mongodb, а затем драйвер mongodb-php для него.

1) Установка mongo db. Введите следующие команды:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

$ sudo apt-get update

$ sudo apt-get install -y mongodb-org

Чтобы правильно запустить Mongdb в качестве службы, то есть автоматически запускать Mongodb при запуске системы, выполните следующие действия:

Создайте файл mongodb. в / etc / systemd / system /, введя команду:

$ sudo nano /etc/systemd/system/mongodb.service

Вставьте в нее следующее содержимое:

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target

[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Затем введите следующие команды:

$ sudo systemctl start mongodb

$ sudo systemctl enable mongodb

2) Установка драйвера mongo-php:

$ sudo pecl install mongodb

Также вы можете получить сообщение об ошибке: phpize не найден. Phpize - это команда, которая используется для создания среды сборки. Эта ошибка может появиться во время установки любого расширения расширения. Для решения этой проблемы команда phpize не найдена, пользователь должен установить пакет php5-dev. Чтобы установить его, введите команду:

 $ sudo apt-get install php7.0-dev

Затем в файле php.ini, который находится в каталоге /etc/php/7.0/apache2, добавьте расширение mongo db:

$ sudo nano /etc/php/7.0/apache2/php.ini 

Добавьте в файл следующую строку:

extension = mongo.so;

(Возможно, вам нужно указать точное местоположение файла. В моем случае файл был в /usr/lib/php/20151012/mongodb.so.)

Таким образом, монго db устанавливается вместе со своим драйвером.

3) Теперь имейте в виду, что монго- PHP-классы были изменены. Большинство доступных ресурсов в сети предоставляют решения с использованием старых классов, которые заменяются. Ниже приведены ссылки, ссылки на которые вы можете найти:

http://php.net/manual/en/set.mongodb.php

http://zetcode.com/db/mongodbphp/

Вот несколько команд для основных операций с базой данных:

$mng = new MongoDB\Driver\Manager(); // Driver Object created

Чтобы вставить данные в базу данных:

$bulk = new MongoDB\Driver\BulkWrite;

$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];

$bulk->insert($doc);

$mng->executeBulkWrite('dbName.collectionName', $bulk);

Для получения данных:

$query = new MongoDB\Driver\Query([]); 

$rows = $mng->executeQuery("dbName.collectionName", $query);

foreach ($rows as $row) 
    {
         echo "$row->data - $row->info\n";
    }
1
ответ дан Pransh Tiwari 1 September 2018 в 10:01
поделиться

UBUNTU 16.0.4 (07.12.2016)

установить драйверы PHP-MONGODB: Командующие: - sudo pecl install mongodb -> résultat: Процесс сборки успешно завершен Установка '/ usr / lib / php / 20151012 /mongodb.so 'install ok: channel: //pecl.php.net/mongodb-1.2.0 параметр конфигурации «php_ini» не установлен в расположение php.ini. Вы должны добавить «extension = mongodb.so» в php.ini

                    -> la librairie se trouve dans "/usr/lib/php/20151012/mongodb.so"
            - sudo systemctl restart apache2.service
            https://secure.php.net/manual/en/mongodb.installation.pecl.php
            - create 2 new files called "30-mongodb.ini" in both path to add the extension to your server:
                -/etc/php/7.0/fpm/conf.d/30-mongodb.ini
                -/etc/php/7.0/cli/conf.d/30-mongodb.ini
                Commandes :
                    sudo nano /etc/php/7.0/fpm/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"

                    sudo nano /etc/php/7.0/cli/conf.d/30-mongodb.ini

                        -> add "extension=mongodb.so"


            - Test if the mongodb extension is running in your server :
                Commandes :
                    php --ini

установить DoctrineMongoDBBundle: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html , http: //www.doctrine -project.org/2016/06/09/odm-1-1-0-and-1-0-6.html,

    Commandes :
        - cd
        - cd my_project_name
        - ls -a composer*
            -> résultat : composer.json  composer.lock
        - sudo nano composer.json
        - Add to the composer.json in "require" array
            "doctrine/mongodb-odm": "^1.0",
            "doctrine/mongodb-odm-bundle": "^3.0"
        - Add to the composer.json in "require" array
            "alcaeus/mongo-php-adapter": "^1.0",
            "ext-mongo": "*"
        - Add a new array :
            "provide": 
            {
                "ext-mongo": "1.6.12"
            }
        - Move 
        sudo cp -i /usr/lib/php/20151012/mongodb.so /etc/php/7.0/cli

Чтобы дать решение, которое мне нужно на не менее 10 репутации для публикации ...

1
ответ дан Tiri 1 September 2018 в 10:01
поделиться

Если вы боретесь с тем, что ваш старый код PHP5 работает с PHP7, одним из решений, которое вы, возможно, захотите изучить, является https://github.com/alcaeus/mongo-php-adapter

Я заметил, что в большинстве случаев, включая библиотеку адаптеров, все, что вам нужно сделать, чтобы ваш старый код PHP5 работал правильно в PHP7 с новым подходом к драйверу / библиотеке.

Затем я настоятельно рекомендую вам перенести ваш код в новую библиотеку PHP MongoDB ( https://github.com/mongodb/mongo-php-library ) или использовать собственный драйвер для выгоды от увеличения скорости.

0
ответ дан Tomi 1 September 2018 в 10:01
поделиться

Нет, устаревший драйвер не поддерживает PHP7, к сожалению. Вот commit и JIRA Ticket , где это было официально завершено.

Новый PHP MongoDB-драйвер можно найти в PECL здесь (или GitHub ).

Для установки просто:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`

Документацию для нового драйвера можно найти здесь здесь . Я хотел бы включить примечание из документации:

В конечном счете это расширение не предназначено для использования в одиночку. Пользователи должны рассмотреть возможность использования этого драйвера рядом с одной или несколькими библиотеками PHP в пользовательской среде, такими как mongo-php-library .

Новый mongodb драйвер / расширение PHP намного более низкоуровневый, чем предыдущий драйвер mongo, и вам предлагается использовать более высокоуровневую библиотеку поверх драйвера, а не использовать ее непосредственно в вашем коде.

Mongo PHP Library ( релизы ) является официальной высокоуровневой библиотекой для PHP, и это то, что рекомендуется использовать в ваших проектах.

Возможно, кому-то удастся перенести устаревший драйвер на PHP7, но, вероятно, есть «нет», но он, вероятно, является самым безопасным и наиболее надежным в будущем способом с PHP7. это большая потребность в нем, так как есть много других проблем с устаревшим драйвером.

10
ответ дан Will 1 September 2018 в 10:01
поделиться

Драйвер MongoDB, поддерживающий PHP 7, был выпущен только 22 декабря - его вероятные последующие репозитории, такие как пиво, не обновились.

Обновление подтверждено, что в настоящее время нет php70-mongo скрипт, хотя есть активный запрос pull , чтобы добавить его.

Вы можете установить его вручную через pecl тем временем:

pecl channel-update pecl.php.net

pecl install mongodb

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
10
ответ дан Will 3 September 2018 в 06:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: