首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP身份验证的MongoDB与所有数据库

使用PHP身份验证的MongoDB与所有数据库
EN

Stack Overflow用户
提问于 2020-10-27 10:28:49
回答 1查看 22关注 0票数 0

我们正在使用MONGO DB和PHP(版本7.xx),最近我们对MongoDB应用了身份验证。

我们使用配置"mongodb://IP地址:端口“连接到MongoDB,并将其更改为”mongodb://用户名:密码@IP:端口“。

当我尝试用数据库名连接DB URL时,如"mongodb://user_ NAME :password@IP:PORT/DB NAME",它是工作的。但如果没有数据库名称,如"mongodb://user_ NAME :password@IP:PORT",则会返回验证失败错误。

我想知道如何通过MongoDB地址连接到所有的数据库。

欢迎任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-10-27 12:36:20

你可以参考我的代码:

代码语言:javascript
复制
private static function getMongoConfiguration(string $host, int $port, string $user, string $password,
                                                  bool $isReplica, string $replicaSetName = "rs0", array $replicaConfigs = [])
    {
        $params = [];
        $mgDb = "mongodb://" . $user . ":" . $password;
        if (!$isReplica){
            $mgDb = $mgDb. "@". $host . ":" . $port;
        }else{
            $params = [
                "replicaSet" => $replicaSetName,
                "db" => $database
            ];

            $c = 1;
            foreach ($replicaConfigs as $dbToUse) {
                $mongoHost = isset($dbToUse["host"]) ? $dbToUse["host"] : $port;
                $mongoPort = isset($dbToUse["port"]) ? $dbToUse["port"] : $port;
                $new = $mongoHost . ":" . $mongoPort;
                $mgDb = ($c > 1) ? $mgDb . "," . $new : $mgDb . $new;
                $c++;
            }
        }
        return [$mgDb, $params];
    }

然后创建与MongoDb交互的Client

代码语言:javascript
复制
$mongo = new Client($mgDb, $params);
// interact with 'app' database ...
$dbName = 'app';
$db = $mongo->{$dbName};

注意:我使用https://packagist.org/packages/mongodb/mongodb作为Php Mongo驱动程序的高级抽象

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64547540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档