如何在codeigniter中集成mongodb库,以便与mongodb进行数据库连接

时间:2014-08-19 12:10:44

标签: codeigniter mongodb-php

我正在使用codeigniter和mongodb数据库创建应用程序。由于codeigniter不包含mongodbs驱动程序,我使用内置库连接mongodb。我使用这个link来创建mongodb configration文件和Mongo_db库。 配置文件就像application \ config \ mongodb:

<?php
$config['default']['mongo_hostbase'] = 'localhost:27017';
$config['default']['mongo_database'] = 'test';
$config['default']['mongo_username'] = '';
$config['default']['mongo_password'] = '';
$config['default']['mongo_persist']  = FALSE;
$config['default']['mongo_persist_key']  = 'ci_persist';
$config['default']['mongo_replica_set']  = FALSE;
$config['default']['mongo_query_safety'] = 'safe';
$config['default']['mongo_suppress_connect_error'] = FALSE;
$config['default']['mongo_host_db_flag']   = FALSE; 

?> 

和Mongo_db库就像:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mongo_db
{
  public function __construct()
    {

                //Check mongodb is installed in your server otherwise display an error
        if ( ! class_exists('Mongo'))
        {
            $this->_show_error('The MongoDB PECL extension has not been installed or enabled', 500);
        }

                //get instance of CI class
        if (function_exists('get_instance'))
        {
            $this->_ci = get_instance();
        }

        else
        {
            $this->_ci = NULL;
        }   

                //load the config file which we have created in 'config' directory
        $this->_ci->load->config('mongodb');


            $config='default';
                // Fetch Mongo server and database configuration from config file which we have created in 'config' directory
                $config_data = $this->_ci->config->item($config);  

            try{
                   //connect to the mongodb server
           $this->mb = new Mongo('mongodb://'.$config_data['mongo_hostbase']);
                   //select the mongodb database 
                   $this->db=$this->mb->selectDB($config_data['mongo_database']);
        } 
        catch (MongoConnectionException $exception)
        {
                     //if mongodb is not connect, then display the error
            show_error('Unable to connect to Database', 500);           
        }


}
?>

当我运行应用程序时,它会给我一个错误 遇到了错误 您的application / config / mongodb.php文件似乎不包含有效的配置数组。

任何人都可以告诉如何解决此错误并设置与mongodb的连接?

3 个答案:

答案 0 :(得分:2)

你可能想试试这个回购:https://github.com/vesparny/cimongo-codeigniter-mongodb-library,看起来很容易使用。

可在此处找到完整的PHP库列表: http://docs.mongodb.org/ecosystem/drivers/php-libraries/

答案 1 :(得分:0)

如果您想在codeIgniter项目中使用mongoDB作为数据库,那么这篇文章可能对您有所帮助。 在项目中配置mongoDB有一些简单的步骤。

  1. 安装PECL pakcage。
  2. 为此,您可以从官方PHP网站获取帮助 - http://php.net/manual/en/install.pecl.php

    1. 下载CodeIgniter库。
    2. 您必须下载一个有助于与mongoDB enter link description here

      建立连接的库
      1. 安装mongoDB。
      2. 您必须在系统中安装mongoDB数据库。根据您的opearting系统从https://docs.mongodb.com/manual/installation下载可安装文件并安装。

        1. 设置库。
        2. 提取库,您将获得一个配置文件,您需要将其放在application / config文件夹中,并将一个库文件放在application / libraries文件夹中。在mongoDB配置文件中输入您的凭据,如

          $config['mongo_db']['default']['no_auth'] = FALSE;
          $config['mongo_db']['default']['hostname'] = 'localhost';
          $config['mongo_db']['default']['port'] = '27017';
          $config['mongo_db']['default']['username'] = 'aniket';
          $config['mongo_db']['default']['password'] = 'password';
          $config['mongo_db']['default']['database'] = 'admin';
          $config['mongo_db']['default']['db_debug'] = TRUE;
          $config['mongo_db']['default']['return_as'] = 'array';
          $config['mongo_db']['default']['write_concerns'] = (int)1;
          $config['mongo_db']['default']['journal'] = TRUE;
          $config['mongo_db']['default']['read_preference'] = NULL;
          $config['mongo_db']['default']['read_preference_tags'] = NULL;
          
          1. 加载库。
          2. 作为一个普通的库,只要你想在项目中使用mongoDB,你就需要加载mongoDB库。为此,您可以使用此代码。

            $这 - &GT;负载&GT;库( 'mongo_db',阵列( '激活'=&GT; 'NEWDB'), 'mongo_db_conn');

答案 2 :(得分:-1)

有关使用codeigniter配置mongodb的简单和几分钟解决方案,请参阅此YouTube视频。

https://www.youtube.com/watch?v=SMDznjUz57c