【发布时间】:2017-03-22 01:21:18
【问题描述】:
我可能在这方面花费的时间比我应该的要多。 我正在使用 heroku 来部署 php & mongodb 应用程序。
Heroku mLab 通过 getenv('MONGODB_URI') 提供 php 中可访问的环境变量 MONGODB_URI,其中包含标准 MongoDBURI,例如:
mongodb://<dbuser>:<dbpassword>@dsxxxxxx.mlab.com:31899/heroku_lxxxxxx
其中已经包含现有的数据库名称,但是 php mongodb 库教程建议不使用它的连接字符串:
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
所以问题是我可以以某种方式使用默认 heroku 的 MONGODB_URI 字符串,或者我必须 parse_uri 它然后单独提供给 php。
【问题讨论】:
-
您是否尝试过使用 mlab 连接字符串创建客户端? php.net/manual/en/mongoclient.construct.php。顺便说一句,您应该使用最新的 php 驱动程序。 php.net/manual/en/mongodb-driver-manager.construct.php
-
是的,我已经创建了客户端,但是我仍然需要解析 uri 以提取 dbname 并手动选择它,因为它已经传递给客户端构造函数。
-
这是身份验证数据库作为 URI 的一部分。您只需连接到保存您的收藏的数据库。类似
$db = $client->selectDB("dbname"); $collection = $db->collectionname