Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 表名作为模型Codeigniter中的变量_Php_Mysql_Codeigniter - Fatal编程技术网

Php 表名作为模型Codeigniter中的变量

Php 表名作为模型Codeigniter中的变量,php,mysql,codeigniter,Php,Mysql,Codeigniter,是否可以将一些变量传递给表名中的模型? 我有一个创建客户的模块。 现在,我们为每个客户创建一个单独的表。 客户具有登录和注销凭据 现在,无论何时创建一个客户,我都不能总是创建一个新模型并在那里传递它的名称 所以我希望它是动态的,我不知道我如何才能做到 每个客户将有一个单独的表 现在我想为登录创建一个模型,但是我应该在表名中传递什么,它应该是动态的,对吗 mysql模式应该是什么来实现这一点? 这是我的示例模型代码: class Customer_User_M extends MY_Mod

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

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

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

所以我希望它是动态的,我不知道我如何才能做到

每个客户将有一个单独的表

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

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 ;

最好将常见的客户详细信息保存在customer表中,然后创建另一个表来存储具有外键customerid的不同字段的客户的不同数据


这里,,如果要将动态表名传递给模型,则需要使用键值对将所有表名预定义为关联数组。然后可以将所需键值传递给模型。可以使用来实现。这样,您就可以使用所有的表名控制器

您只需在模型中创建一个函数,并将创建表的代码放入函数中,然后从控制器中传递动态表名,如下所示

型号功能代码:

function access_customer_table($table_name)
{
        //put ur select query here with table name in FROM clause will be     $table_name
}
并在加载模型后在控制器中调用此模型函数。。。并将您的表名作为参数。。。 比如:


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

加载模型后,我试图设置表名。只是为我工作

$this->load->model('customer_model','customer');
那么


动态表的属性应该是什么?@SubrataDeyPappu我已经添加了我的客户表的架构,您确定要这样做吗?您不想为所有具有外键customer_id的客户创建一个通用表吗?根据我们的要求,我必须这样做,我希望我能在这个wyaso中找到解决方案,您希望如何命名新表?这将创建新表,对吗?但是,如果我们为客户提供了现有的表呢?$this->dbforge->create\u table($table\u name,TRUE);如果不存在$TABLE\u名称,则提供CREATE TABLE\u名称。。。因此,如果表已经存在,它将不会创建表…是的,确切地说,但是表是从其他模块创建的,我只需访问其数据库并根据Aruguments中的表名获取记录,所以只需传递表名并从已创建的表中获取记录。。。通过选择查询。。。只需要将表名作为参数从控制器传递给模型中的一个函数,以获取表的记录……我已经提供了我的模型代码,那么你建议我在这里怎么做
$this->load->model('customer_model','customer');
$customer->table_name = "customer_xxx";