IEn*_*tor 51 php codeigniter mongodb mongodb-php
任何人都可以帮助我指向一个教程,库等,这将允许我从CodeIgniter使用MongoDB吗?
Ste*_*ran 51
我不确定它是否是"CodeIgniter方式",但我创建了一个CodeIgniter库,它扩展了Mongo类,并带有一个额外的属性来存储当前的数据库连接.
以下是我项目中的相关代码文件.
配置/ mongo.php
$config['mongo_server'] = null;
$config['mongo_dbname'] = 'mydb';
Run Code Online (Sandbox Code Playgroud)
库/ Mongo.php
class CI_Mongo extends Mongo
{
var $db;
function CI_Mongo()
{
// Fetch CodeIgniter instance
$ci = get_instance();
// Load Mongo configuration file
$ci->load->config('mongo');
// Fetch Mongo server and database configuration
$server = $ci->config->item('mongo_server');
$dbname = $ci->config->item('mongo_dbname');
// Initialise Mongo
if ($server)
{
parent::__construct($server);
}
else
{
parent::__construct();
}
$this->db = $this->$dbname;
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个样本控制器
控制器/ posts.php
class Posts extends Controller
{
function Posts()
{
parent::Controller();
}
function index()
{
$posts = $this->mongo->db->posts->find();
foreach ($posts as $id => $post)
{
var_dump($id);
var_dump($post);
}
}
function create()
{
$post = array('title' => 'Test post');
$this->mongo->db->posts->insert($post);
var_dump($post);
}
}
Run Code Online (Sandbox Code Playgroud)
sep*_*ehr 14
MongoDB在CodeIgniter社区中得到了很好的支持,花时间潜入:p
小智 10
我喜欢Stephen Curran的例子,因为它很简单并且允许Mongo的接口而没有在Php中编写太多的功能,我倾向于发现巨大的抽象条款有时候对于我所追求的东西.
我已将其示例扩展为包含数据库身份验证.请访问:http://www.mongodb.org/display/DOCS/Security+and+Authentication以了解有关mongo身份验证的信息,不要忘记为要连接的Mongo Server启用身份验证.
我还将旧样式构造函数更改为__construct并处理Mongo Connection Exceptions,因为它们可以显示您的用户名和密码.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config['mongo_server'] = 'localhost';
$config['mongo_dbname'] = 'my_mongo_db';
$config['mongo_username'] = 'mongo_user';
$config['mongo_password'] = 'password1234';
/* End of file mongo.php */
Run Code Online (Sandbox Code Playgroud)
<?php
class CI_Mongo extends Mongo{
protected $db;
function __construct()
{
// Fetch CodeIgniter instance
$ci = get_instance();
// Load Mongo configuration file
$ci->load->config('mongo');
// Fetch Mongo server and database configuration
$server = $ci->config->item('mongo_server');
$username = $ci->config->item('mongo_username');
$password = $ci->config->item('mongo_password');
$dbname = $ci->config->item('mongo_dbname');
// Initialise Mongo - Authentication required
try{
parent::__construct("mongodb://$username:$password@$server/$dbname");
$this->db = $this->$dbname;
}catch(MongoConnectionException $e){
//Don't show Mongo Exceptions as they can contain authentication info
$_error =& load_class('Exceptions', 'core');
exit($_error->show_error('MongoDB Connection Error', 'A MongoDB error occured while trying to connect to the database!', 'error_db'));
}catch(Exception $e){
$_error =& load_class('Exceptions', 'core');
exit($_error->show_error('MongoDB Error',$e->getMessage(), 'error_db'));
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46875 次 |
| 最近记录: |