<!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.0b3</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;
Database Example Code
</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>Database Quick Start: Example Code</h1>

<p>The following page contains example code showing how the database class is used.  For complete details please
read the individual pages describing each function.</p>


<h2>Initializing the Database Class</h2>

<p>The following code loads and initializes the database class based on your <a href="configuration.html">configuration</a> settings:</p>

<code>$this->load->database();</code>

<p>Once loaded the class is ready to be used as described below.</p>

<p>Note: If all your pages require database access you can connect automatically.  See the <a href="connecting.html">connecting</a> page for details.</p>


<h2>Standard Query With Multiple Results (Object Version)</h2>

<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br />
<br />
foreach ($query->result() as $row)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row->email;<br />
}<br />
<br />
echo 'Total Results: ' . $query->num_rows();
</code>

<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>.  Example:  $row->title</p>


<h2>Standard Query With Multiple Results (Array Version)</h2>

<code>$query = $this->db->query('SELECT name, title, email FROM my_table');<br />
<br />
foreach ($query->result_array() as $row)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row['title'];<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row['name'];<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row['email'];<br />
}</code>

<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes.  Example:  $row['title']</p>


<h2>Testing for Results</h2>

<p>If you run queries that might <strong>not</strong> produce a result, you are encouraged to test for a result first
using the <dfn>num_rows()</dfn> function:</p>

<code>
$query = $this->db->query("YOUR QUERY");<br />
<br />
if ($query->num_rows() > 0)<br />
{<br />
&nbsp;&nbsp;&nbsp;foreach ($query->result() as $row)<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->name;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo $row->body;<br />
&nbsp;&nbsp;&nbsp;}<br />
}
</code>




<h2>Standard Query With Single Result</h2>

<code>$query = $this->db->query('SELECT name FROM my_table LIMIT 1');<br />
<br />
$row = $query->row();<br />
echo $row->name;<br />
</code>

<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>.  Example:  $row->name</p>


<h2>Standard Query With Single Result (Array version)</h2>

<code>$query = $this->db->query('SELECT name FROM my_table LIMIT 1');<br />
<br />
$row = $query->row_array();<br />
echo $row->['name'];<br />
</code>

<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>.  Example:  $row->['name']</p>


<h2>Standard Insert</h2>

<code>
$sql = "INSERT INTO mytable (title, name) <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";<br />
<br />
$this->db->query($sql);<br />
<br />
echo $this->db->affected_rows();
</code>




<h2>Active Record Query</h2>

<p>The <a href="active_record.html">Active Record Pattern</a> gives you a simplified means of retrieving data:</p>

<code>
$query = $this->db->get('table_name');<br />
<br />
foreach ($query->result() as $row)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
}</code>

<p>The above <dfn>get()</dfn> function retrieves all the results from the supplied table. 
The <a href="active_record.html">Active Record</a> class contains a full compliment of functions
for working with data.</p>


<h2>Active Record Insert</h2>

<code>
$data = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'title' => $title,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'name' => $name,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'date' => $date<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
$this->db->insert('mytable', $data);
<br /><br />
// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code>




</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="index.html">Database Class</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="configuration.html">Database Configuration</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>