Ваш код должен быть чем-то вроде этого
$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'];
}
. После этого вы получите запрос, напечатанный на экране. Попробуйте выполнить этот запрос на своем сервере и посмотрите, дает ли он желаемые результаты. В большинстве случаев ошибка содержится в запросе. Остальная часть кода верна.
sudo pecl install mongodb
Старый вопрос, но новое отличное решение. Просто используйте Mongostead7 автоматический скрипт для установки всех необходимых материалов. Работал для меня просто отлично. Никакой дополнительной работы не требуется.
Используйте ее следующим образом:
sudo curl -sS https://raw.githubusercontent.com/zakhttp/Mongostead7/master/mongoHomestead7.sh | sudo sh
Расширение 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
Как подключить 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
В дополнение к ответам и публикации того, что сработало для меня:
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.)
blockquote>И все это для установки только клиента mongo для php 7.0
Я дополняю ответ Pransh Tiwari
Это работало для меня на Ubuntu для PHP7:
sudo apt-get install php7.0-mongodb
Вы можете попробовать установить драйвер mongodb с помощью:
sudo apt-get install php-mongodb
Я использую 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";
}
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 репутации для публикации ...
Если вы боретесь с тем, что ваш старый код PHP5 работает с PHP7, одним из решений, которое вы, возможно, захотите изучить, является https://github.com/alcaeus/mongo-php-adapter
Я заметил, что в большинстве случаев, включая библиотеку адаптеров, все, что вам нужно сделать, чтобы ваш старый код PHP5 работал правильно в PHP7 с новым подходом к драйверу / библиотеке.
Затем я настоятельно рекомендую вам перенести ваш код в новую библиотеку PHP MongoDB ( https://github.com/mongodb/mongo-php-library ) или использовать собственный драйвер для выгоды от увеличения скорости.
Нет, устаревший драйвер не поддерживает 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 .
blockquote>Новый
mongodb
драйвер / расширение PHP намного более низкоуровневый, чем предыдущий драйверmongo
, и вам предлагается использовать более высокоуровневую библиотеку поверх драйвера, а не использовать ее непосредственно в вашем коде.Mongo PHP Library ( релизы ) является официальной высокоуровневой библиотекой для PHP, и это то, что рекомендуется использовать в ваших проектах.
Возможно, кому-то удастся перенести устаревший драйвер на PHP7, но, вероятно, есть «нет», но он, вероятно, является самым безопасным и наиболее надежным в будущем способом с PHP7. это большая потребность в нем, так как есть много других проблем с устаревшим драйвером.
Драйвер 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*||"`