在codeigniter mongodb中插入函数的位置

Posted

技术标签:

【中文标题】在codeigniter mongodb中插入函数的位置【英文标题】:where to insert functions in codeigniter mongodb 【发布时间】:2014-02-04 00:37:57 【问题描述】:

我已在 codeigniter 驱动程序的帮助下将我的 php web 应用程序连接到 mongodb。

现在我正在使用 mongoo_db 类将集合插入到默认数据库 db_name 中。

我的文件的源代码是,

ghy.php

<?php
/**
* @author
* @copyright 2014
*/
class ghy

    public $id;
    public $name;
    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);
        
        $use=$this->mongo_db->insert('foo', $data = array('4','hgfh'));
        var_dump();
        
    
?>

问题是我的浏览器没有得到任何输出。

谁能解释一下我哪里出错了?尽快回复将不胜感激。

谢谢你

【问题讨论】:

尝试echo你的输出,即echo var_dump($use) @Renier 我试过没有显示任何内容。你能告诉我如何在 php 程序中使用活动驱动程序库。即如何使用连接字符串建立与 mongodb 的连接 ghy.php 在哪里?即ci/models/ghy.php? 它位于 xampp/htdocs/phppjct 【参考方案1】:

我不确定您的课程为什么不起作用,但要了解 MongoDB 和 Codeigniter 如何协同工作,请查看answer。

来自answer 回答您关于如何建立与 MongoDB 的连接的问题:

config/mongo.php

$config['mongo_server'] = null;
$config['mongo_dbname'] = 'mydb';

库/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;
    

还有一个示例控制器

controllers/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);
    

来自question如上答案:

MongoDB 在 CodeIgniter 社区中得到了很好的支持,花点时间潜入:p

CodeIgniter MongoDB Active Document Library CodeIgniter MongoDB Session Library CodeIgniter MongoDB Authentication Library CodeIgniter MongoDB REST Server Library CodeIgniter MongoDB Base Model

我希望这可以帮助您让您的 Codeigniter(MongoDB) 项目正常工作

【讨论】:

我已经看过这个了。但我不明白在哪里实现功能。你给出的答案是关于驱动程序 我的答案是关于如何使用 MongoDB 库,你在上面的 cmets 中问过 how to use active driver library 你只需要在你的项目中实现这个代码,你就可以连接到你的 MongoDB 数据库.您在代码上方指示的文件中实现它,即config/mongo.php 意味着在您的config 文件夹中,您将有一个名为mongo.php 的文件,如果它不存在,则创建它。 谢谢你我已经这样做了。现在我在我的 php 代码中使用它无法连接到数据库

以上是关于在codeigniter mongodb中插入函数的位置的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 数据中的 MySQL 函数

如何重定向到codeigniter中的另一个函数?

如何使用 Monk 在 MongoDB 中插入带有子文档数组元素的文档

PHP 和 HTML 中的 MongoDB 注入

如何通过 CodeIgniter 连接 MongoDB

在 CodeIgniter 中发送数据和重定向