summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Sturgeon <email@philsturgeon.co.uk>2011-07-15 23:25:15 +0200
committerPhil Sturgeon <email@philsturgeon.co.uk>2011-07-15 23:25:15 +0200
commit8a02247acbac87b3b947d9188ec4f5805f2e1a52 (patch)
treeaccf500d1ce73c07c42357fa6cb38ecd81de3d7f
parent9789f321cd52139d36d1479f07fff3897be48107 (diff)
... set_dbprefix(). Programatically set the prefix, great for multi-site systems that "namespace" with prefixes.
-rw-r--r--system/database/DB_active_rec.php15
-rw-r--r--user_guide/changelog.html1
-rw-r--r--user_guide/database/queries.html9
3 files changed, 23 insertions, 2 deletions
diff --git a/system/database/DB_active_rec.php b/system/database/DB_active_rec.php
index 7ddf20d07..bc11ff436 100644
--- a/system/database/DB_active_rec.php
+++ b/system/database/DB_active_rec.php
@@ -1599,6 +1599,21 @@ class CI_DB_active_record extends CI_DB_driver {
// --------------------------------------------------------------------
/**
+ * Set DB Prefix
+ *
+ * Set's the DB Prefix to something new without needing to reconnect
+ *
+ * @param string the prefix
+ * @return string
+ */
+ public function set_dbprefix($prefix = '')
+ {
+ return $this->dbprefix = $prefix;
+ }
+
+ // --------------------------------------------------------------------
+
+ /**
* Track Aliases
*
* Used to track SQL statements written with aliased tables.
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index a841785f0..a924edc9c 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -86,6 +86,7 @@ Change Log
<ul>
<li>Altered Session to use a longer match against the user_agent string. See upgrade notes if using database sessions.</li>
<li class="reactor">Added <kbd>is_unique</kbd> to the <a href="libraries/form_validation.html">Form Validation library</a>.</li>
+ <li class="reactor">Added <kbd>$this->db->set_dbprefix()</kbd> to the <a href="database/queries.html">Database Driver</a>.</li>
</ul>
</li>
</ul>
diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html
index f9f96803f..4c1ddfe7d 100644
--- a/user_guide/database/queries.html
+++ b/user_guide/database/queries.html
@@ -80,11 +80,16 @@ It DOES NOT return a database result set, nor does it set the query timer, or co
It simply lets you submit a query. Most users will rarely use this function.</p>
-<h1>Adding Database prefixes manually</h1>
-<p>If you have configured a database prefix and would like to add it in manually for, you can use the following.</p>
+<h1>Working with Database prefixes manually</h1>
+<p>If you have configured a database prefix and would like to prepend it to a table name for use in a native SQL query for example, then you can use the following:</p>
<p><code>$this-&gt;db-&gt;dbprefix('tablename');<br />
// outputs prefix_tablename</code></p>
+<p>If for any reason you would like to change the prefix programatically without needing to create a new connection, you can use this method:</p>
+<p><code>$this-&gt;db-&gt;set_dbprefix('newprefix');<br /><br />
+$this-&gt;db-&gt;dbprefix('tablename');<br />
+// outputs newprefix_tablename</code></p>
+
<h1>Protecting identifiers</h1>
<p>In many databases it is advisable to protect table and field names - for example with backticks in MySQL. <strong>Active Record queries are automatically protected</strong>, however if you need to manually protect an identifier you can use:</p>