<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>Code Igniter User Guide</title>

<style type='text/css' media='all'>@import url('../../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../../userguide.css' />

<script type="text/javascript" src="../../scripts/nav.js"></script>
<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
<script type="text/javascript" src="../../scripts/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400}); 
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='Code Igniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>Code Igniter User Guide Version 1.4.1</h1></td>
<td id="breadcrumb_right"><a href="../../toc.html">Full Table of Contents</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->

<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">Code Igniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
<a href="index.html">Database Library</a> &nbsp;&#8250;&nbsp;
Field Names
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->


<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Field Data</h1>


<h2>Retrieving Field Names</h2>
<p>Sometimes it's helpful to gather the field names.</p>

<h2>$this->db->field_names();</h2>
<p>Returns an array containing the field names.  You must supply the table name to the function:</p>

<code>
$fields = $this->db->field_names('table_name');<br /><br />

foreach ($fields as $field)<br />
{<br />
&nbsp;&nbsp;&nbsp;echo $field;<br />
}
</code>



<h2>Retrieving Field MetaData</h2>
<p>Sometimes it's helpful to gather the field names or other metadata, like the column type, max length, etc.</p>

<h2>$this->db->field_data();</h2>
<p>Returns an array of objects containing field information.</p>

<p class="important">Note: Not all databases provide meta-data.</p>

<p>Usage example:</p>

<code>
$fields = $this->db->field_data('table_name');<br /><br />

foreach ($fields as $field)<br />
{<br />
&nbsp;&nbsp;&nbsp;echo $field->name;<br />
&nbsp;&nbsp;&nbsp;echo $field->type;<br />
&nbsp;&nbsp;&nbsp;echo $field->max_length;<br />
&nbsp;&nbsp;&nbsp;echo $field->primary_key;<br />
}
</code>

<p>If you have run a query already you can use the result oject instead of supplying the table name:</p>

<code>
$query = $this->db->query("YOUR QUERY");<br />
$fields = $query->field_data();
</code>


<p>The following data is available from this function if supported by your database:</p>

<ul>
<li>name - column name</li>
<li>max_length - maximum length of the column</li>
<li>primary_key - 1 if the column is a primary key</li>
<li>type - the type of the column</li>
</ul>



	

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="results.html">Query Results</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="table_data.html">Table MetaData</a>
<p>
<p><a href="http://www.codeigniter.com">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
</div>

</body>
</html>