<!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.1</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</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>