<!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>CodeIgniter User Guide : Query Helper Functions</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.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://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 inserted, and the third parameter is the "where" clause. The above example produces:</p>
<code> UPDATE exp_weblog 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; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>