<!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="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/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.5.0b1</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Linear 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>$this->db->list_fields()</h2>
<p>Returns an array containing the field names. This query can be called two ways:</p>


<p>1. You can supply the table name and call it from the <dfn>$this->db-></dfn> object:</p>

<code>
$fields = $this->db->list_fields('table_name')<br /><br />

foreach ($fields as $field)<br />
{<br />
&nbsp;&nbsp;&nbsp;echo $field;<br />
}
</code>

<p>2. You can gather the feild names associated with any query you run by calling the function 
from your query result object:</p>

<code>
$query = $this->db->query('SELECT * FROM some_table')
<br /><br />

foreach ($query->list_fields() as $field)<br />
{<br />
&nbsp;&nbsp;&nbsp;echo $field;<br />
}
</code>


<h2>$this->db->field_exists()</h2>

<p>Sometimes it's helpful to know whether a particular field exists befor performing an action.
Returns a boolean TRUE/FALSE.  Usage example:</p>

<code>
if ($this->db->field_exists('field_name', 'table_name'))<br />
{<br />
&nbsp;&nbsp; // some code...<br />
}
</code>

<p>Note:  Replace <em>field_name</em> with the name of the column you are looking for, and replace 
<em>table_name</em> with the name of the table you are looking for.</p>




<h2>$this->db->field_data()</h2>
<p>Returns an array of objects containing field information.</p>
<p>Sometimes it's helpful to gather the field names or other metadata, like the column type, max length, etc.</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="transactions.html">Transactions</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="call_function.html">Custom Function Calls</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>