为了账号安全,请及时绑定邮箱和手机立即绑定

PHP Mongodb 中的动态数据库选择

PHP Mongodb 中的动态数据库选择

PHP
皈依舞 2021-11-26 19:54:20
无法database动态选择和集合。阅读所有解决方案,但对我不起作用。selectDB功能不工作。它仅适用于静态数据。我想从配置文件中选择数据库并动态选择集合。$username='abcd';$password='efgh';$m = new MongoDB\Client("mongodb://abcd@127.0.0.1:28015/ijkl", array("username" => $username, "password" => $password));$db = $m->ijkl;但我想拥有它$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;期望使用动态数据库选择。
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

终于开始工作了


$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!";

 }


查看完整回答
反对 回复 2021-11-26
?
喵喔喔

TA贡献1735条经验 获得超5个赞

使用来自 packagist 的 mongodb 客户端存储库。您可以通过composer安装它


$ composer require mongodb/mongodb

在您的根目录中,创建文件,例如 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']};


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信