diff options
author | Phil Sturgeon <email@philsturgeon.co.uk> | 2011-07-15 23:25:15 +0200 |
---|---|---|
committer | Phil Sturgeon <email@philsturgeon.co.uk> | 2011-07-15 23:25:15 +0200 |
commit | 8a02247acbac87b3b947d9188ec4f5805f2e1a52 (patch) | |
tree | accf500d1ce73c07c42357fa6cb38ecd81de3d7f | |
parent | 9789f321cd52139d36d1479f07fff3897be48107 (diff) |
... set_dbprefix(). Programatically set the prefix, great for multi-site systems that "namespace" with prefixes.
-rw-r--r-- | system/database/DB_active_rec.php | 15 | ||||
-rw-r--r-- | user_guide/changelog.html | 1 | ||||
-rw-r--r-- | user_guide/database/queries.html | 9 |
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->db->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->db->set_dbprefix('newprefix');<br /><br /> +$this->db->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> |