首页 文章

尝试使用CodeIgniter和MongoDB驱动程序将集合插入MongoDB时出现PHP错误

提问于
浏览
2

我正在为荣誉级别的大学项目构建一个简单的管理系统 .

使用Alex Bible驱动程序在MongignDB上构建Codeigniter . 我正在尝试执行一个带有硬编码值的简单插入 .

My Model

$username = "William";
        $email = "Test";

        $registerdata = array(
                "username"   => $username,
                "email"      => $email);

        $collection = 'students';

        $this->mongo_db->insert($collection, $registerdata);

抛出以下错误:

遇到PHP错误严重性:通知消息:未定义变量:insert文件名:libraries / Mongo_db.php行号:456

和:

遇到PHP错误严重性:警告消息:MongoCollection :: insert():期望参数1为数组或对象,给定文件名为null:libraries / Mongo_db.php行号:456

有任何想法吗?

它在库中调用此函数,如果这有助于任何:

* Insert a new document into the passed collection
     *
     *  @usage = $this->mongo_db->insert('foo', $data = array());
     */

     public function insert($collection = "", $data = array()) {
        if(empty($collection))
            show_error("No Mongo collection selected to insert into", 500);
        if(count($data) == 0 || !is_array($data))
            show_error("Nothing to insert into Mongo collection or insert is not an array", 500);

        try {
            $this->db->{$collection}->insert($insert, array('safe' => TRUE));
            if(isset($insert['_id']))
                return($insert['_id']);
            else
                return(FALSE);
        } catch(MongoCursorException $e) {
            show_error("Insert of data into MongoDB failed: {$e->getMessage()}", 500);
        }

     }

1 回答

  • 0

    你的方法签名是错误的 - 我想知道你是否复制并粘贴了这个库的第2版而没有安装整个东西?新方法是:

    public function insert($collection = '', $insert = array(), $options = array())
    

    在您的应用程序中重新安装库,并检查库文件是否已完整提取 .

相关问题