Ruckusing_Adapter_Sqlite3_Base::column_info PHP Method

column_info() public method

public column_info ( $table, $column ) : array | null
$table
$column
return array | null
    public function column_info($table, $column)
    {
        if (empty($table)) {
            throw new Ruckusing_Exception("Missing table name parameter", Ruckusing_Exception::INVALID_ARGUMENT);
        }
        if (empty($column)) {
            throw new Ruckusing_Exception("Missing original column name parameter", Ruckusing_Exception::INVALID_ARGUMENT);
        }
        try {
            $pragmaTable = $this->query('pragma table_info(' . $table . ')');
            $data = array();
            $pragmaColumnInfo = $this->extract_column_info($pragmaTable, $column);
            if (is_array($pragmaColumnInfo)) {
                $data['type'] = $pragmaColumnInfo['type'];
                $data['name'] = $column;
                $data['field'] = $column;
                $data['null'] = $pragmaColumnInfo['notnull'] == 0;
                $data['default'] = $pragmaColumnInfo['dflt_value'];
            }
            return $data;
        } catch (Exception $e) {
            return null;
        }
    }

Usage Example

 public function test_generate_table_without_primary_key()
 {
     $tableDefinition = new Ruckusing_Adapter_Sqlite3_TableDefinition($this->adapter, "users", array('id' => false));
     $tableDefinition->column("first_name", "string");
     $tableDefinition->column("last_name", "string", array('limit' => 32));
     $tableDefinition->finish();
     $column = $this->adapter->column_info("users", "id");
     $this->assertEquals(array(), $column);
     $primary_keys = $this->adapter->primary_keys('users');
     $this->assertEquals(array(), $primary_keys);
 }