CodeIgniter  裡面本來就有一個語法可以取得資料庫的欄位資訊,它的語法如下:

// 先取的所有table
$tables = $this->db->list_tables();

// 再依序每個table取的欄位資訊
$fields = $this->db->field_data(‘table_name’);
foreach ($fields as $field)
{
  echo $field->name;
  echo $field->type;
  echo $field->max_length;
  echo $field->primary_key;
}


不過如果想要取的編碼(Collation)、權限(Privileges)、註解(Comment)這些欄位,就必須修改一下,以下用 mysql 為主介紹改法:

Setp.1
開啟:system/database/drivers/mysql/mysql_driver.php
找到:function _field_data($table)
修改:

  1. 將原本的語法註解掉 //return “DESCRIBE “.$table;
  2. 新增新語法 return “SHOW FULL FIELDS FROM “.$this->database.”.”.$table;

Step.2
開啟:system/database/drivers/mysql/mysql_result.php
找到:function field_data()
新增幾個語法:
$F->Null = $field->Null;
$F->Comment = $field->Comment;
$F->Collation = $field->Collation;
$F->Privileges =$field->Privileges;

這樣子就可以多這些懶位資訊可以運用了

發表迴響