数据库元数据

表元数据

下面这些方法用于获取表信息:

列出数据库的所有表

$this->db->list_tables();

该方法返回一个包含你当前连接的数据库的所有表名称的数组。例如:

  1. $tables = $this->db->list_tables();
  2.  
  3. foreach ($tables as $table)
  4. {
  5. echo $table;
  6. }

检测表是否存在

$this->db->table_exists();

有时候,在对某个表执行操作之前先判断该表是否存在将是很有用的。该函数返回一个布尔值:TRUE / FALSE。使用示例:

  1. if ($this->db->table_exists('table_name'))
  2. {
  3. // some code...
  4. }

注解

使用你要查找的表名替换掉 table_name

字段元数据

列出表的所有列

$this->db->list_fields()

该方法返回一个包含字段名称的数组。有两种不同的调用方式:

  • 将表名称作为参数传入 $this->db->list_fields():
  1. $fields = $this->db->list_fields('table_name');
  2.  
  3. foreach ($fields as $field)
  4. {
  5. echo $field;
  6. }
  • 你可以从任何查询结果对象上调用该方法,获取查询返回的所有字段:
  1. $query = $this->db->query('SELECT * FROM some_table');
  2.  
  3. foreach ($query->list_fields() as $field)
  4. {
  5. echo $field;
  6. }

检测表中是否存在某字段

$this->db->field_exists()

有时候,在执行一个操作之前先确定某个字段是否存在将会有很用。该方法返回一个布尔值:TRUE / FALSE。使用示例:

  1. if ($this->db->field_exists('field_name', 'table_name'))
  2. {
  3. // some code...
  4. }

注解

使用你要查找的字段名替换掉 field_name ,然后使用你要查找的表名替换掉 table_name

获取字段的元数据

$this->db->field_data()

该方法返回一个包含了字段信息的对象数组。

获取字段名称或相关的元数据,如数据类型,最大长度等等,在有些时候也是非常有用的。

注解

并不是所有的数据库都支持元数据。

使用示例:

  1. $fields = $this->db->field_data('table_name');
  2.  
  3. foreach ($fields as $field)
  4. {
  5. echo $field->name;
  6. echo $field->type;
  7. echo $field->max_length;
  8. echo $field->primary_key;
  9. }

如果你已经执行了一个查询,你也可以在查询结果对象上调用该方法获取返回结果中的所有字段的元数据:

  1. $query = $this->db->query("YOUR QUERY");
  2. $fields = $query->field_data();

如果你的数据库支持,该函数获取的字段信息将包括下面这些:

  • name - 列名称
  • max_length - 列的最大长度
  • primary_key - 等于1的话表示此列是主键
  • type - 列的数据类型