summaryrefslogtreecommitdiffstats
path: root/user_guide/libraries/database/active_record.html
diff options
context:
space:
mode:
Diffstat (limited to 'user_guide/libraries/database/active_record.html')
-rw-r--r--user_guide/libraries/database/active_record.html610
1 files changed, 0 insertions, 610 deletions
diff --git a/user_guide/libraries/database/active_record.html b/user_guide/libraries/database/active_record.html
deleted file mode 100644
index b45c5d14e..000000000
--- a/user_guide/libraries/database/active_record.html
+++ /dev/null
@@ -1,610 +0,0 @@
-<!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="../../scripts/nav.js"></script>
-<script type="text/javascript" src="../../scripts/prototype.lite.js"></script>
-<script type="text/javascript" src="../../scripts/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.4.1</h1></td>
-<td id="breadcrumb_right"><a href="../../toc.html">Full 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;
-Active Record
-</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>Active Record Class</h1>
-
-
-<p>Code Igniter uses a modified version of the Active Record Database Pattern.
-This pattern allows information to be retrieved, inserted, and updated in your database with minimal scripting.
-In some cases only one or two lines of code are necessary to perform a database action.
-Code Igniter does not require that each database table be its own class file. It instead provides a more simplified interface.</p>
-
-<p>Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax
-is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.</p>
-
-<p class="important"><strong>Note:</strong> If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.</p>
-
-<br />
-
-<ul>
-<li><a href="#select">Selecting Data</a></li>
-<li><a href="#insert">Inserting Data</a></li>
-<li><a href="#update">Updating Data</a></li>
-<li><a href="#delete">Deleting Data</a></li>
-<li><a href="#chaining">Method Chaining</a></li>
-</ul>
-
-
-
-
-<a name="select">&nbsp;</a>
-<h1>Selecting Data</h1>
-
-<p>The following functions allow you to build SQL <strong>SELECT</strong> statements.</p>
-
-<p><strong>Note: If you are using PHP 5 you can use method chaining for more compact syntax. This is described at the end of the page.</strong></p>
-
-
-<h2>$this->db->get();</h2>
-
-<p>Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:</p>
-
-<code>$query = $this->db->get('mytable');<br />
-<br />
-// Produces: SELECT * FROM mytable</code>
-
-<p>The second and third parameters enable you do set a limit and offset clause:</p>
-
-<code>$query = $this->db->get('mytable', 10, 20);<br />
-<br />
-// Produces: SELECT * FROM mytable LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code>
-
-
-
-<p>You'll notice that the above function is assigned to a variable named <kbd>$query</kbd>, which can be used to show the results:</p>
-
-<code>$query = $this->db->get('mytable');<br />
-<br />
-foreach ($query->result() as $row)<br />
-{<br />
-&nbsp;&nbsp;&nbsp;&nbsp;echo $row->title;<br />
-}</code>
-
-<p>Please visit the <a href="results.html">result functions</a> page for a full discussion regarding result generation.</p>
-
-
-<h2>$this->db->getwhere();</h2>
-
-<p>Identical to the above function except that it permits you to add a "where" clause in the second parameter,
-instead of using the db->where() function:</p>
-
-<code>$query = $this->db->getwhere('mytable', array(id => $id), $limit, $offset);</code>
-
-<p>Please read the about the where function below for more information.</p>
-
-
-<h2>$this->db->select();</h2>
-
-<p>Permits you to write the SELECT portion of your query:</p>
-
-<code>
-$this->db->select('title, content, date');<br />
-<br />
-$query = $this->db->get('mytable');<br />
-<br />
-// Produces: SELECT title, content, date FROM mytable</code>
-
-<p><strong>Note: If you are selecting all (*) from a table you do not need to use this function. When omitted, Code Igniter assumes you wish to SELECT *</strong></p>
-
-
-<h2>$this->db->from();</h2>
-
-<p>Permits you to write the FROM portion of your query:</p>
-
-<code>
-$this->db->select('title, content, date');<br />
-$this->db->from('mytable');<br />
-<br />
-$query = $this->db->get();<br />
-<br />
-// Produces: SELECT title, content, date FROM mytable</code>
-
-<p><strong>Note: As shown earlier, the FROM portion of your query can be specified in the <dfn>$this->db->get()</dfn> function, so use whichever method
-you prefer.</strong></p>
-
-<h2>$this->db->join();</h2>
-
-<p>Permits you to write the JOIN portion of your query:</p>
-
-<code>
-$this->db->select('*');<br />
-$this->db->from('blogs');<br />
-$this->db->join('comments', 'comments.id = blogs.id');<br />
-<br />
-$query = $this->db->get();<br />
-<br />
-// Produces: <br />
-// SELECT * FROM blogs<br />
-// JOIN comments ON comments.id = blogs.id<br />
-</code>
-
-<p>Multiple function calls can be made if you need several joins in one query.</p>
-
-<p>If you need something other than a natural JOIN you can specify it via the third parameter of the function.
-Options are: left, right, outer, inner, left outer, and right outer.</p>
-
-<code>
-$this->db->join('comments', 'comments.id = blogs.id', <strong>'left'</strong>);<br />
-<br />
-// Produces: LEFT JOIN comments ON comments.id = blogs.id</code>
-
-
-
-
-
-<h2>$this->db->where();</h2>
-<p>This function enables you to set <strong>WHERE</strong> clauses using one of four methods:</p>
-
-<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically, producing safer queries.</p>
-
-<ol>
- <li><strong>Simple key/value method:</strong>
-
- <code>$this->db->where('name', $name);
- <br /><br />// Produces: WHERE name = 'Joe'
- </code>
-
- <p>Notice that the equal sign is added for you.</p>
-
- <p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p>
-
- <code>$this->db->where('name', $name);<br />
- $this->db->where('title', $title);<br />
- $this->db->where('status', $status);
- <br /><br />// WHERE = 'Joe' AND title = 'boss' AND status = 'active'
- </code>
-
-
- </li>
-
- <li><strong>Custom key/value method:</strong>
-
- <p>You can include an operator in the first parameter in order to to control the comparison:</p>
-
- <code>$this->db->where('name !=', $name);<br />
- $this->db->where('id <', $id);
- <br /><br />// Produces: WHERE name != 'Joe' AND id < 45
- </code>
-
-
-
- </li>
- <li><strong>Associative array method:</strong>
-
-
- <code>
- $array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br />
-
- $this->db->where($array);
- <br /><br />// Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
- </code>
-
- <p>You can include your own operators using this method as well:</p>
-
- <code>
- $array = array('name !=' => $name, 'id <' => $id, 'date >' => $date);<br /><br />
-
- $this->db->where($array);</code>
-
- </li>
- <li><strong>Custom string:</strong>
-
- <p>You can write your own clauses manually:</p>
-
- <code>
- $where = "name='Joe' AND status='boss' OR status='active'";<br /><br />
- $this->db->where($where);</code>
-
- </li>
-</ol>
-
-
-<h2>$this->db->orwhere();</h2>
-<p>This function is identical to the one above, except that multiple instances are joined by OR:</p>
-
-<code>
-$this->db->where('name !=', $name);<br />
-$this->db->orwhere('id >', $id);
-<br /><br />// Produces: WHERE name != 'Joe' OR id > 50
-</code>
-
-
-
-
-<h2>$this->db->like();</h2>
-<p>This function enables you to generate <strong>LIKE</strong> clauses, useful for doing searches.</p>
-
-<p class="important"><strong>Note:</strong> All values passed to this function are escaped automatically.</p>
-
-
-<ol>
- <li><strong>Simple key/value method:</strong>
-
- <code>$this->db->like('title', $match);
- <br /><br />// Produces: WHERE title LIKE '%match%'
- </code>
-
- <p>If you use multiple function calls they will be chained together with <var>AND</var> between them:</p>
-
- <code>$this->db->like('title', $match);<br />
- $this->db->like('body', $match);
- <br /><br />// WHERE title LIKE '%match%' AND body LIKE '%match%'
- </code>
-
- </li>
-
- <li><strong>Associative array method:</strong>
-
- <code>
- $array = array('title' => $match, 'page1' => $match, 'page2' => $match);<br /><br />
-
- $this->db->like($array);
- <br /><br />// WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'
- </code>
-
- </li>
-</ol>
-
-
-<h2>$this->db->orlike();</h2>
-<p>This function is identical to the one above, except that multiple instances are joined by OR:</p>
-
-<code>
-$this->db->like('title', $match);<br />
-$this->db->orlike('body', $match);
-<br /><br />// WHERE title LIKE '%match%' OR body LIKE '%match%'
-</code>
-
-
-
-
-<h2>$this->db->groupby();</h2>
-
-<p>Permits you to write the GROUP BY portion of your query:</p>
-
-<code>$this->db->groupby("title");
-<br /><br />// Produces: GROUP BY title
-</code>
-
-<p>You can also pass an array of multiple values as well:</p>
-
-<code>$this->db->groupby(array("title", "date");
-<br /><br />// Produces: GROUP BY title, date
-</code>
-
-
-<h2>$this->db->having();</h2>
-
-<p>Permits you to write the HAVING portion of your query:</p>
-
-<code>$this->db->having('user_id = 45');
-<br /><br />// Produces: HAVING 'user_id = 45'
-</code>
-
-<p>You can also pass an array of multiple values as well:</p>
-
-
-<code>$this->db->having(array('title =' => 'My Title', 'id <' => $id));
-<br /><br />// Produces: HAVING title = 'My Title', 'id < 45'
-</code>
-
-
-
-<h2>$this->db->orderby();</h2>
-<p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by.
-The second parameter lets you set the direction of the result. Options are <kbd>asc</kbd> or <kbd>desc</kbd> or <kbd>RAND()</kbd></p>
-
-<code>$this->db->orderby("title", "desc");
-<br /><br />// Produces: ORDER BY title DESC
-</code>
-
-<p>You can also pass your own string in the first parameter:</p>
-
-<code>$this->db->orderby('title desc, name asc');
-<br /><br />// Produces: ORDER BY title DESC, name ASC
-</code>
-
-
-
-<h2>$this->db->limit();</h2>
-<p>Lets you limit the number of rows you would like returned by the query:
-
-<code>
-$this->db->limit(10);<br />
-<br />
-// Produces: LIMIT 10</code>
-
-
-<p>The second parameter lets you set a result offset.</p>
-
-<code>
-$this->db->limit(10, 20);<br />
-<br />
-// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code>
-
-
-<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>
-
-
-
-
-<a name="insert">&nbsp;</a>
-<h1>Inserting Data</h1>
-
-<h2>$this->db->insert();</h2>
-<p>Generates an insert string based on the data you supply, and runs the query. You can either pass an
-<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p>
-
-<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>
-
-<p>The first parameter will contain the table name, the second is an associative array of values.</p>
-
-<p>Here is an example using an object:</p>
-
-<code>
-/*<br />
-&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;}<br />
-*/<br />
-<br />
-$object = new Myclass;<br />
-<br />
-$this->db->insert('mytable', $object);
-<br /><br />
-// Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')</code>
-
-<p>The first parameter will contain the table name, the second is an associative array of values.</p>
-
-<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
-
-
-
-
-<h2>$this->db->set();</h2>
-<p>This function enables you to set values for <dfn>inserts</dfn> or <dfn>updates</dfn>.</p>
-
-<p><strong>It can be used instead of passing a data array directly to the insert or update functions:</strong> </p>
-
-<code>$this->db->set('name', $name);
-<br />
-$this->db->insert('mytable');
-<br /><br />
-// Produces: INSERT INTO mytable (name) VALUES ('{$name}')</code>
-
-<p>If you use multiple function called they will be assembled properly based on whether you are doing an insert or an update:</p>
-
-<code>$this->db->set('name', $name);<br />
-$this->db->set('title', $title);<br />
-$this->db->set('status', $status);<br />
-$this->db->insert('mytable');
-</code>
-
-<p>You can also pass an associative array to this function:</p>
-
-<code>
-$array = array('name' => $name, 'title' => $title, 'status' => $status);<br /><br />
-
-$this->db->set($array);<br />
-$this->db->insert('mytable');
-</code>
-
-<p>Or an object:</p>
-
-
-<code>
-/*<br />
-&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;}<br />
-*/<br />
-<br />
-$object = new Myclass;<br />
-<br />
-$this->db->set($object);<br />
-$this->db->insert('mytable');
-</code>
-
-
-
-<a name="update">&nbsp;</a>
-<h1>Updating Data</h1>
-
-<h2>$this->db->update();</h2>
-<p>Generates an update string and runs the query based on the data you supply. You can pass an
-<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using
-an array:</p>
-
-<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->where('id', $id);<br />
-$this->db->update('mytable', $data);
-<br /><br />
-// Produces:<br />
-// UPDATE mytable <br />
-// SET title = '{$title}', name = '{$name}', date = '{$date}'<br />
-// WHERE id = $id</code>
-
-<p>Or you can supply an object:</p>
-
-<code>
-/*<br />
-&nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var = $date = 'My Date';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;}<br />
-*/<br />
-<br />
-$object = new Myclass;<br />
-<br />
-$this->db->where('id', $id);<br />
-$this->db->update('mytable', $object, $where);
-<br /><br />
-// Produces:<br />
-// UPDATE mytable <br />
-// SET title = '{$title}', name = '{$name}', date = '{$date}'<br />
-// WHERE id = $id</code>
-
-
-
-<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
-
-<p>You'll notice the use of the <dfn>$this->db->where()</dfn> function, enabling you to set the WHERE clause.
-You can optionally pass this information directly into the update function as a string:</p>
-
-<code>$this->db->update('mytable', $data, "id = 4");</code>
-
-<p>Or as an array:</p>
-
-<code>$this->db->update('mytable', $data, array('id' => $id));</code>
-
-<p>You may also use the <dfn>$this->db->set()</dfn> function described above when performing updates.</p>
-
-
-<a name="delete">&nbsp;</a>
-<h1>Deleting Data</h1>
-
-
-
-<h2>$this->db->delete();</h2>
-<p>Generates a delete SQL string and runs the query.</p>
-
-<code>
-$this->db->delete('mytable', array('id' => $id));
-<br /><br />
-// Produces:<br />
-// DELETE FROM mytable <br />
-// WHERE id = $id</code>
-
-<p>The first parameter is the table name, the second is the where clause. You can also use the <dfn>where()</dfn> or <dfn>orwhere()</dfn> functions instead of passing
-the data to the second parameter of the function:
-
-<code>
-$this->db->where('id', $id);<br />
-$this->db->delete('mytable');
-<br /><br />
-// Produces:<br />
-// DELETE FROM mytable <br />
-// WHERE id = $id</code>
-
-<p class="important"><strong>Note:</strong> All values are escaped automatically producing safer queries.</p>
-
-
-<a name="chaining">&nbsp;</a>
-<h1>Method Chaining</h1>
-
-<p>Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:</p>
-
-<code>
-<dfn>$this->db</dfn><kbd>-></kbd><var>select</var>('title')<kbd>-></kbd><var>from</var>('mytable')<kbd>-></kbd><var>where</var>('id', $id)<kbd>-></kbd><var>limit</var>(10, 20);<br />
-<br />
-$query = $this->db->get();</code>
-
-<p class="important"><strong>Note:</strong> Method chaining only works with PHP 5.</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="fields.html">Field Metadata</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> \ No newline at end of file