php - 表名作为模型 Codeigniter 中的变量

标签 php mysql codeigniter

是否可以将一些变量传递给表名中的模型?

我有一个创建客户的模块。 现在,我们为每个客户创建一个单独的表。 客户有登录和注销凭据。

现在无论何时创建客户,我都不能总是创建一个新模型并在那里传递它的名称。

所以我希望它是动态的,我不确定我该怎么做。

对于每个客户,将有一个单独的表。

现在我想创建一个登录模型,但是我应该在表名中传递什么,它应该是动态的吧?

完成这项工作的 mysql 模式应该是什么?

这是我的示例模型代码:

    class Customer_User_M extends MY_Model

{

    protected $_table_name = 'customer1';
    protected $_order_by = 'name';


    public function __construct()
    {
        parent::__construct()
    }

}

客户表:

CREATE TABLE IF NOT EXISTS `customer1` (
    `id` int(10) NOT NULL AUTO_INCREMENT,
    `site_key` varchar(50) NOT NULL,
    `display_name` varchar(100) NOT NULL,
    `ext` varchar(15) NOT NULL,
    `auth_user` varchar(100) NOT NULL,
    `password` varchar(128) NOT NULL,
    `base_ini_id` varchar(50) NOT NULL,
    `comments` varchar(200) NOT NULL,
    `custom_ini_filename` varchar(50) NOT NULL,
    `email` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

最佳答案

您可以简单地在模型中创建一个函数,并将创建表的代码放入函数中,并在函数中从 Controller 传递动态表名,如下所示....

模型功能代码:

function access_customer_table($table_name)
{
        //put ur select query here with table name in FROM clause will be     $table_name
}

并在加载模型后在您的 Controller 中调用此模型函数...并将您的表名作为参数... 喜欢:

$this->load->model('Customer_User_M');
$this->Customer_User_M->access_customer_table('new_customer_table_name');

如果需要,请更正语法。如果逻辑上有任何错误,请告诉我...

关于php - 表名作为模型 Codeigniter 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35622953/

相关文章:

css - Twitter Bootstrap 代码已复制但未加载

php - site_url() 和 base_url() 有什么区别?

PHP - 只接受特定类的数组

php - 如何在每天凌晨 12 点运行 php 脚本

大连接上的 MySQL 重复条目检测

sql - WHERE 和 HAVING 之间的语义区别是什么?

php - MySQL 数据库中的 Wordpress 膨胀 "session_token"

PHP比较两个表的结果

php - 注册脚本,需要检查数据库输入,然后在注册时删除

CodeIgniter 可选参数