Undefined property: MongoDBDriverManager::$db(未定义属性:MongoDBDriverManager::$db)
本文介绍了未定义属性:MongoDBDriverManager::$db的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个在Windows10的WAMP上运行的本地MongoDB数据库,我使用的是PHP版本7.2.10、Apache 2.4.35和MongoDB扩展1.5.3。我正在测试一个非常简单的Web应用程序,当我尝试通过php脚本将数据发送到数据库时,收到以下错误:
PHP Notice: Undefined property: MongoDBDriverManager::$db in
C:wamp64wwwphp est.php
有关文件test.php
的相关部分如下所示:
$objectId = new MongoDBBSONObjectId();
$dbhost = "127.0.0.1:27017";
$dbname = "db";
$m = new MongoDBDriverManager("mongodb://localhost:27017");
var_dump($m);
$db = $m->$dbname;
属性未定义会导致另一个错误:Fatal error: Uncaught Error: Call to a member function selectCollection() on null
,这会导致脚本失败。
是什么原因导致属性MongoDBDriverManager::$db
未定义?
php
运行推荐答案代码如下所示。请注意是否存在指向‘Vendor/autoload.php’的链接:
$DB_CONNECTION_STRING="mongodb://YourCredentials";
require '../../vendor/autoload.php';
$manager = new MongoDBDriverManager( $DB_CONNECTION_STRING );
如果您使用的是MongoDB驱动程序的现代版本MongoDBDriverManager,您的CRUD操作将如下所示:
在集合中创建文档:
$bulkWrite = new MongoDBDriverBulkWrite;
$doc = ['name' => 'John', age => 33, profession => 'Guess what?'];
$bulkWrite->insert($doc);
$manager->executeBulkWrite('db.MyCollection', $bulkWrite);
按名称读取集合中的文档,但有限制:
$filter = ['name' => 'John'];
$options = ['limit' => 2];
$query = new MongoDBDriverQuery($filter, $options);
$manager->executeQuery('db.MyCollection', $query);
由mongoDB_id读取集合中的文档,但有限制:
$filter = ['_id' => new MongoDBBSONObjectID( '5bdf54e6d722dc000f0aa6c2' )];
$options = ['limit' => 2];
$query = new MongoDBDriverQuery($filter, $options);
$manager->executeQuery('db.MyCollection', $query);
更新集合中的文档:(阅读有关选项upsert和multihere的详细信息)
$bulkWrite = new MongoDBDriverBulkWrite;
$filter = ['name' => 'John'];
$update = ['$set' => ['name' => 'Smith', age: 35, profession => 'Guess what?']];
$options = ['multi' => false, 'upsert' => false];
$bulkWrite->update($filter, $update, $options);
$manager->executeBulkWrite('db.MyCollection', $bulkWrite);
删除集合中的单据-删除:
$bulkWrite = new MongoDBDriverBulkWrite;
$filter = ['name' => 'John', age => 35];
$options = ['limit' => 1];
$bulkWrite->delete($filter, $options);
$manager->executeBulkWrite('db.MyCollection', $bulkWrite);
这篇关于未定义属性:MongoDBDriverManager::$db的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:未定义属性:MongoDBDriverManager::$db
基础教程推荐
猜你喜欢
- 超薄框架REST服务两次获得输出 2022-01-01
- Libpuzzle 索引数百万张图片? 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01