Intereting Posts
Способы остановить людей от загрузки GIF с инъекциями в них? Неустранимая ошибка HelperSet не найдена при настройке Doctrine Console (с помощью CodeIgniter) Как я могу сделать ссылку «назад» на страницах PHP? Создание случайных чисел и букв Проблема с публикацией на странице Facebook с использованием скрипта PHP как учетной записи страницы Оптимизация запросов для следующего и предыдущего элементов получить текущий контроллер «Не удается найти config.m4.» Во время работы phpize при установке apd с помощью pecl Как избежать данных SQL в CakePHP? Как удалить http, https и slash из пользовательского ввода в php Laravel db migration – renameColumn error – запрошено неизвестное имя типа базы данных Остановить перенаправление после добавления WooCommerce в корзину Лучшая практика для проведения обновления Magento? Facebook SDK вернул ошибку: проверка подделки на основе перекрестного запроса не удалась. Параметр «состояние» из URL-адреса и сеанса не соответствует Удалить расширение php веб-сайта с помощью htaccess

mongodb connect, используя php

Что делать, если пароль с @ in mongodb connect mongodb: // [имя пользователя: пароль @] host1 [: port1] [, host2 [: port2:], …] / db предположим, что username='abc' и password='abc@123' а в php мы создаем экземпляр mongo db, например

 $m = new Mongo('mongodb://[abc:abc@123@]localhost/abc'); 

то он дает такую ​​ошибку

Неустранимая ошибка: исключение uncaught «MongoConnectionException» с сообщением «не удалось получить информацию о хосте для 123 @] localhost '

то как решить эту проблему.

Solutions Collecting From Web of "mongodb connect, используя php"

Опция 1

Передайте учетные данные с помощью второго аргумента конструктору Mongo

 $db = new Mongo('mongodb://localhost', array( 'username' => 'abc', 'password' => 'abc@123', 'db' => 'abc' )); 

Вариант 2

Использовать метод MongoDB::authenticate()

 $m = new Mongo(); $db = $m->abc; $db->authenticate('abc', 'abc@123'); 

Иметь ввиду…

Существует большой недостаток этого метода: если соединение отбрасывается и затем повторно соединяется, новое соединение не будет аутентифицироваться. Если вы используете формат URI, драйвер PHP автоматически будет аутентифицировать пользователя при каждом новом подключении.

Обновление 2014 года

Уступчивое Mongo прямо сейчас устарело. Совет состоит в том, чтобы использовать MongoClient вместо тех же аргументов, что и выше. Например

 $m = new MongoClient('mongodb://localhost', [ 'username' => 'abc', 'password' => 'abc@123', 'db' => 'abc' ]); 

Использование новых Mongo (); может создавать проблемы

«Предупреждение: запуск этого класса приведет к выпуску предупреждения E_DEPRECATED и отключению подтвержденных записей». – php.com

Использовать MongoClient () insted

 $m = new MongoClient("mongodb://testUser:testPass@localhost:myportnumber");