<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<title>Query Helper Functions : CodeIgniter 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" src="../nav/user_guide_menu.js"></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='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter 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>CodeIgniter User Guide Version 1.6.2</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://codeigniter.com/">CodeIgniter 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;
Query Helpers
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="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>Query Helper Functions</h1>


<h2>$this->db->insert_id()</h2>
<p>The insert ID number when performing database inserts.</p>

<h2>$this->db->affected_rows()</h2>
<p>Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).</p>
<p>Note:  In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the
correct number of affected rows.  By default this hack is enabled but it can be turned off in the database driver file.</p>


<h2>$this->db->count_all();</h2>
<p>Permits you to determine the number of rows in a particular table.  Submit the table name in the first parameter. Example:</p>
<code>echo $this->db->count_all('<var>my_table</var>');<br />
<br />
// Produces an integer, like 25
</code>


<h2>$this->db->platform()</h2>
<p>Outputs the database platform you are running (MySQL, MS SQL, Postgre, etc...):</p>
<code>echo $this->db->platform();</code>


<h2>$this->db->version()</h2>
<p>Outputs the database version you are running:</p>
<code>echo $this->db->version();</code>


<h2>$this->db->last_query();</h2>
<p>Returns the last query that was run (the query string, not the result).  Example:</p>

<code>$str = $this->db->last_query();<br />
<br />
// Produces:  SELECT * FROM sometable....
</code>


<p>The following two functions help simplify the process of writing database INSERTs and UPDATEs.</p>


<h2>$this->db->insert_string(); </h2>
<p>This function simplifies the process of writing database inserts. It returns a correctly formatted SQL insert string. Example:</p>

<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br />
<br />
$str = $this->db->insert_string('table_name', $data);
</code>

<p>The first parameter is the table name, the second is an associative array with the data to be inserted.  The above example produces:</p>
<code>INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@your-site.com', 'www.your-site.com')</code>

<p class="important">Note: Values are automatically escaped, producing safer queries.</p>



<h2>$this->db->update_string(); </h2>
<p>This function simplifies the process of writing database updates. It returns a correctly formatted SQL update string. Example:</p>

<code>$data = array('name' => $name, 'email' => $email, 'url' => $url);<br />
<br />
$where = "author_id = 1 AND status = 'active'";
<br /><br />
$str = $this->db->update_string('table_name', $data, $where);
</code>

<p>The first parameter is the table name, the second is an associative array with the data to be updated, and the third parameter is the "where" clause. The above example produces:</p>
<code> UPDATE table_name SET name = 'Rick', email = 'rick@your-site.com', url = 'www.your-site.com' WHERE author_id = 1 AND status = 'active'</code>

<p class="important">Note: Values are automatically escaped, producing safer queries.</p>


</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="active_record.html">Active Record Pattern</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2008 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>