首页 > 解决方案 > MongoDB PHP 错误:警告:未定义属性:MongoDB\Driver\Manager

问题描述

我正在尝试使用此堆栈溢出中的建议在我的本地计算机上使用 MongoDB 。我在 Windows 10、php 版本 8.01 和 MongoDB 扩展 1.9.0 上使用 XAMPP。

这是一个连接到 MongoDB 并尝试使用其中一个数据库的非常基本的脚本。

但我仍然收到此警告:

Connection to database successfully
Warning: Undefined property: MongoDB\Driver\Manager::$aws_inventories in C:\xampp\htdocs\mongo_connect.php on line 8

这是我的代码:

<?php
   require 'C:\xampp\htdocs\vendor\autoload.php'; // include Composer's autoloader
   $DB_CONNECTION_STRING="mongodb://localhost:27017";
   // connect to mongodb
   $m = new MongoDB\Driver\Manager( $DB_CONNECTION_STRING );
   echo "Connection to database successfully";
   // select a database
   $db = $m->aws_inventories;
?>

如何摆脱警告并正确连接到数据库?

标签: phpmongodb

解决方案


$m->aws_inventories这看起来像是较旧/已弃用的方法。您可以尝试按照本教程进行操作吗?

https://zetcode.com/db/mongodbphp/

<?php

try {

    $mng = new MongoDB\Driver\Manager("mongodb://localhost:27017");

    $stats = new MongoDB\Driver\Command(["dbstats" => 1]);
    $res = $mng->executeCommand("aws_inventories", $stats);
    
    $stats = current($res->toArray());

    print_r($stats);

} catch (MongoDB\Driver\Exception\Exception $e) {

    $filename = basename(__FILE__);
    
    echo "The $filename script has experienced an error.\n"; 
    echo "It failed with the following exception:\n";
    
    echo "Exception:", $e->getMessage(), "\n";
    echo "In file:", $e->getFile(), "\n";
    echo "On line:", $e->getLine(), "\n";       
}
    
?>

推荐阅读