summaryrefslogtreecommitdiffstats
path: root/user_guide_src/source/installation/upgrade_310.rst
diff options
context:
space:
mode:
authorAndrey Andreev <narf@devilix.net>2015-12-14 16:56:14 +0100
committerAndrey Andreev <narf@devilix.net>2015-12-14 16:56:14 +0100
commit85bc9fc53e4c3e46b2f4e1b1eac7e2828d4869e6 (patch)
tree78abe651f52c39be43a3e22ba38c1e83160a7bc8 /user_guide_src/source/installation/upgrade_310.rst
parent788fb4aa823179e7c4401f5384207d916697bb7e (diff)
Change DB charset handling
Close #4311
Diffstat (limited to 'user_guide_src/source/installation/upgrade_310.rst')
-rw-r--r--user_guide_src/source/installation/upgrade_310.rst45
1 files changed, 45 insertions, 0 deletions
diff --git a/user_guide_src/source/installation/upgrade_310.rst b/user_guide_src/source/installation/upgrade_310.rst
index 7060ebc4c..37772cd4f 100644
--- a/user_guide_src/source/installation/upgrade_310.rst
+++ b/user_guide_src/source/installation/upgrade_310.rst
@@ -12,3 +12,48 @@ Replace all files and directories in your *system/* directory.
.. note:: If you have any custom developed files in these directories,
please make copies of them first.
+
+Step 2: Change database connection handling
+===========================================
+
+"Loading" a database, whether by using the *config/autoload.php* settings
+or manually via calling ``$this->load->database()`` or the less-known
+``DB()`` function, will now throw a ``RuntimeException`` in case of a
+failure.
+
+In addition, being unable to set the configured character set is now also
+considered a connection failure.
+
+.. note:: This has been the case for most database drivers in the in the
+ past as well (i.e. all but the 'mysql', 'mysqli' and 'postgre'
+ drivers).
+
+What this means is that if you're unable to connect to a database, or
+have an erroneous character set configured, CodeIgniter will no longer
+fail silently, but will throw an exception instead.
+
+You may choose to explicitly catch it (and for that purpose you can't use
+*config/autoload.php* to load the :doc:`Database Class <../database/index>`)
+::
+
+ try
+ {
+ $this->load->database();
+ }
+ catch (RuntimeException $e)
+ {
+ // Handle the failure
+ }
+
+Or you may leave it to CodeIgniter's default exception handler, which would
+log the error message and display an error screen if you're running in
+development mode.
+
+Remove db_set_charset() calls
+-----------------------------
+
+With the above-mentioned changes, the purpose of the ``db_set_charset()``
+method would now only be to change the connection character set at runtime.
+That doesn't make sense and that's the reason why most database drivers
+don't support it at all.
+Thus, ``db_set_charset()`` is no longer necessary and is removed.