[英]Dynamic Database Selection in PHP Mongodb
Not able to select the database
and collection dynamically. select 无法对
database
进行动态采集。 Read all the solutions but not working for me.阅读所有解决方案但不适合我。
selectDB
function not working. selectDB
function 不工作。 It's working only with the static data.它仅适用于 static 数据。
I want to select the database from the configuration file and also select the collections dynamically.我想 select 来自配置文件的数据库以及 select collections 动态。
$username='abcd';
$password='efgh';
$m = new MongoDB\Client("mongodb://abcd@127.0.0.1:28015/ijkl", array("username" => $username, "password" => $password));
$db = $m->ijkl;
but I want to have it like但我想让它像
$username='abcd';
$password='efgh';
$m = new MongoDB\Client("mongodb://abcd@127.0.0.1:28015/ijkl", array("username" => $username, "password" => $password));
$l1="ijkl";
$db = $m->$l1;
Expecting to work with dynamic database selection.期望使用动态数据库选择。
Use mongodb client repo from packagist. 使用来自packagist的mongodb客户回购。 You can install it via composer
您可以通过作曲家安装它
$ composer require mongodb/mongodb
in your root directory, create file for example app.php 在您的根目录中,创建例如app.php的文件
<?php
require 'vendor/autoload.php';
$databases = [
'db1'=> [
'db' => 'testdb1',
'username' => 'user',
'password' => 'pass',
...
],
'db2'=> [...],
...
];
$seletected = 'db1';
$database = $databases[$selected];
$client = new MongoDB\Client(
"mongodb+srv://{$database['username']}:{$database['password']}@<cluster-address>/test?retryWrites=true&w=majority"
);
$db = $client->{$database['db']};
Finally it's working 终于可以了
$m = new MongoDB\Client("mongodb://".$mongo_username."@".$mongo_ip.":".$mongo_port."/".$mongo_db, array("username" => $mongo_username, "password" => $mongo_password));
if(!empty($db = $m->$mongo_db))
{
$collection = "test";
if(!empty($collection = $db->$collection))
{
$cursor =$collection->find(array("status"=>0), ['limit' => 10,'skip'=>10]);
foreach ($cursor as $document) {
echo "<b>ID is:</b>";
echo $id=$document["_id"];
echo "<br>";
echo "<b>Link is:</b>";
echo $link=$document["Link"];
echo "<br>";
echo "<b>Status is:</b>";
echo $status=$document["status"];
echo "<br>";
echo "<b>Label is:</b>";
echo $label=$document["Label"];
echo "<br>";
}
}
else
{
echo "Not able to select the collection!";
}
}
else
{
echo "Not able to select the database!";
}
replace $db = $m->$l1 to $db = $m->{$l1}将 $db = $m->$l1 替换为 $db = $m->{$l1}
$username='abcd';
$password='efgh';
require 'vendor/aoutoload.php';
$m = new MongoDB\Client("mongodb://abcd@127.0.0.1:28015/ijkl", array("username"=> $username, "password" => $password));
$l1="ijkl";
$db = $m->{$l1};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.