################# Database Metadata ################# ************** Table MetaData ************** These functions let you fetch table information. List the Tables in Your Database ================================ **$this->db->list_tables();** Returns an array containing the names of all the tables in the database you are currently connected to. Example:: $tables = $this->db->list_tables(); foreach ($tables as $table) { echo $table; } Determine If a Table Exists =========================== **$this->db->table_exists();** Sometimes it's helpful to know whether a particular table exists before running an operation on it. Returns a boolean TRUE/FALSE. Usage example:: if ($this->db->table_exists('table_name')) { // some code... } .. note:: Replace *table_name* with the name of the table you are looking for. ************** Field MetaData ************** List the Fields in a Table ========================== **$this->db->list_fields()** Returns an array containing the field names. This query can be called two ways: 1. You can supply the table name and call it from the $this->db-> object:: $fields = $this->db->list_fields('table_name'); foreach ($fields as $field) { echo $field; } 2. You can gather the field names associated with any query you run by calling the function from your query result object:: $query = $this->db->query('SELECT * FROM some_table'); foreach ($query->list_fields() as $field) { echo $field; } Determine If a Field is Present in a Table ========================================== **$this->db->field_exists()** Sometimes it's helpful to know whether a particular field exists before performing an action. Returns a boolean TRUE/FALSE. Usage example:: if ($this->db->field_exists('field_name', 'table_name')) { // some code... } .. note:: Replace *field_name* with the name of the column you are looking for, and replace *table_name* with the name of the table you are looking for. Retrieve Field Metadata ======================= **$this->db->field_data()** Returns an array of objects containing field information. Sometimes it's helpful to gather the field names or other metadata, like the column type, max length, etc. .. note:: Not all databases provide meta-data. Usage example:: $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; } If you have run a query already you can use the result object instead of supplying the table name:: $query = $this->db->query("YOUR QUERY"); $fields = $query->field_data(); The following data is available from this function if supported by your database: - name - column name - max_length - maximum length of the column - primary_key - 1 if the column is a primary key - type - the type of the column