Sunday 10 July 2011

Activating support for MySQL databases


As I said previously, the last file that you’ll need to edit is the one located at /config/database.php. Open it and assign the correct values to the following settings:

$active_group = "default";
$active_record = TRUE;

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "mypassword";
$db['default']['database'] = "mydatabase";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

As you can see, all of the above entries are self explanatory, since they’re used by Code Igniter to connect to MySQL and select a particular database, which you’ve probably done hundreds of times before.
However, in this case it’s possible to work with several sets of connection values. Suppose for a moment that you need to use multiple development environments with a shared web server. In that case you might want to create a connection group for each of these environments in the following way:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "mypassword";
$db['default']['database'] = "mydatabase";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

$db['production']['hostname'] = "localhost";
$db[' production']['username'] = "root";
$db[' production']['password'] = "myotherpassword";
$db[' production']['database'] = "myotherdatabase";
$db[' production']['dbdriver'] = "mysql";
$db[' production']['dbprefix'] = "";
$db[' production']['pconnect'] = TRUE;
$db[' production']['db_debug'] = FALSE;
$db[' production']['cache_on'] = FALSE;
$db[' production']['cachedir'] = "";
$db[' production']['char_set'] = "utf8";
$db[' production']['dbcollat'] = "utf8_general_ci";

See how easy it is to set up two sets of MySQL connections for different development environments? I hope you do!
Finally, the “active_record” entry should be activated when accessing MySQL database tables using the homonymous pattern. Actually, Code Igniter comes bundled with a bunch of methods that allow you to handle MySQL data via the active record approach. However, this topic will be covered in upcoming tutorials of this series, therefore, this option will be left enabled.
So far, these are all the array entries that you’ll need to edit in the “database.php” file in order to activate the support for MySQL databases. At this stage, everything has been properly setup to start developing object-oriented applications with Code Igniter!
In the section to come I’ll be showing you how to build a simple PHP program that uses the Model-View-Controller pattern in order to display a trivial message on the browser.

No comments:

Post a Comment