更新时间:2024-05-22 GMT+08:00
PHP示例
本章节主要介绍使用PHP语言连接副本集实例的方法。
前提条件
驱动获取及使用
PHP驱动相关信息:https://www.php.net/mongodb-driver-manager.construct
连接代码
- SSL开启
- 使用MongoDB\Client::__construct()创建client实例。
function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
- 通过$uriOptions设置SSL为true,启用SSL连接。通过$driverOptions设置ca_file为CA证书路径,allow_invalid_hostname设置为true。
<?php require 'vendor/autoload.php'; // include Composer goodies $replicaset_url = 'mongodb://rwuser:*****@192.168.***.***:8635,192.168.***.***:8635/test?authSource=admin&replicaSet=replica'; $test_db = 'test_db'; $test_coll = 'test_coll'; // 创建mongoclient。 $client = new MongoDB\Client( $replicaset_url, [ 'ssl' => true, ], [ "ca_file" => "/path/to/ca.pem", "allow_invalid_hostname" => true ] ); $collection = $client->$test_db->$test_coll; // 插入一条记录。 $result = $collection->insertOne([ 'username' => 'admin', 'email' => 'admin@example.com', ]); echo "Object ID: '{$result->getInsertedId()}'", "\n"; // 查询记录。 $result = $collection->find(['username' => 'admin']); foreach ($result as $entry) { echo $entry->_id, ': ', $entry->email, "\n"; } ?>
- 使用MongoDB\Client::__construct()创建client实例。
- SSL关闭
<?php require 'vendor/autoload.php'; // include Composer goodies $replicaset_url = 'mongodb://rwuser:*****@192.168.***.***:8635,192.168.***.***:8635/test?authSource=admin&replicaSet=replica'; $test_db = 'test_db'; $test_coll = 'test_coll'; // 创建mongoclient。 $client = new MongoDB\Client($replicaset_url); $collection = $client->$test_db->$test_coll; // 插入一条记录。 $result = $collection->insertOne([ 'username' => 'admin', 'email' => 'admin@example.com', ]); echo "Object ID: '{$result->getInsertedId()}'", "\n"; // 查询记录。 $result = $collection->find(['username' => 'admin']); foreach ($result as $entry) { echo $entry->_id, ': ', $entry->email, "\n"; } ?>
- URL中的认证数据库必须为“admin”,即“authSource=admin”。
- rwuser账户的认证数据库必须为“admin”,之后再切换至业务数据库。
父主题: 通过程序代码连接副本集实例