Codeigniter在config / database.php之外创建数据库和表

时间:2018-04-03 09:10:29

标签: php mysql codeigniter

我正在尝试为从codeigniter网站注册的每个客户创建一个数据库和表格,我正在查看dbforge文档并尝试使用以下代码。

但是出现了错误,我想让每个客户都变得动态,所以将它放在config / database.php上是不可用的,是否有办法防止这种情况发生? 我是codeigniter的新手,不确定下面的代码是否也正确。

  

You have specified an invalid database connection group (customer_LYWA) in your config/database.php file.

   public function create_customer_database($code){

        $database = $this->dbutil->database_exists('customer_'.$code);


        if($database){

            return "";

        }else{

            $this->dbforge->create_database('customer_'.$code);

        $fields = array(
                        'blog_id' => array(
                                                 'type' => 'INT',
                                                 'constraint' => 5,
                                                 'unsigned' => TRUE,
                                                 'auto_increment' => TRUE
                                          ),
                        'blog_title' => array(
                                                 'type' => 'VARCHAR',
                                                 'constraint' => '100',
                                          ),
                        'blog_author' => array(
                                                 'type' =>'VARCHAR',
                                                 'constraint' => '100',
                                                 'default' => 'King of Town',
                                          ),
                        'blog_description' => array(
                                                 'type' => 'TEXT',
                                                 'null' => TRUE,
                                          ),
                );

$this->dbforge->add_field($fields);

$this->dbforge->add_key('blog_id', TRUE);
// gives PRIMARY KEY (blog_id)

$this->dbforge->add_key('blog_title');
// gives KEY (blog_title)
$otherdb = $this->load->database('customer_'.$code, TRUE);
$this->dbforge->create_table('blog');

             return "created";

        }

   }

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试为每个客户创建一个表。

有了这个,我认为你把数据库与表混淆了。数据库包含表,因此您需要连接到 config / database.php 中的正确数据库,并使用您的脚本在该数据库中创建表。

您不需要为每个客户创建新数据库。这会使事情变得比它们应该更难100倍,而且很难维持。