Codeigniter从数据库中选择某个表

时间:2014-08-22 05:49:33

标签: php mysql codeigniter

我只想问你是否可以在数据库中选择某个表?我的

中有这个代码

模型:

public function select_tables(){
         $tables = $this->db->list_tables();
         return $tables;
     }

并在我的控制器中

public function maintenance(){
        $this->data['title'] = "Inventory Maintenance";
        $this->load->vars($this->data);
        $this->load->view('homeview');
        $selecttable['tablename'] = $this->inventory_model->select_tables();
        $this->load->view('maintenance_view', $selecttable);
        $this->load->view('footer_view');
    }

以下是视图中的版画屏幕:

enter image description here

在数据库中有我的表列表,我想要的是我只能显示有限的表,例如我只想显示" tbladditional,tmpmployees,tblinventorytype"。是否有语法可以选择某个表?等效于此语法

"Select * from 'tablename' where 'tablename' = 'something'"

这太令人困惑所以请我真的需要你的帮助。非常感谢你!!

2 个答案:

答案 0 :(得分:1)

 public function select_tables(){
    $tables = $this->db->list_tables();
    $req_tables = array("tble1", "table2"); //pass your table names as Array
    $tables = array_intersect($tables, $req_tables);
    return $tables;
 }

这是我可以提供的程序化方式。由于CI没有任何方法来检索特定的表名。

答案 1 :(得分:0)

你可以混合使用Codeigniter和查询结果

例如:

$table_list = $this->db->list_tables();


foreach($table_list as $tl)
   {
       if(strpos(strtolower($tl),'tbladditional')==true ||
          strpos(strtolower($tl),'tblemployees')==true ||
          strpos(strtolower($tl),'tblinventorytype')==true)
         {
            $query = "Select * from $tl";
        }
}