Most models I create need to access the database. You can easily have CI automatically load the database class by setting a 3rd parameter to true when loading your model:
$this->load->model('your_model', '', true);
The 2nd parameter, which in this case was left blank, is used if you want to assign a different object name to the model – something that I have never used.
Has anyone ever actually used a different object name? The reason I ask is because it’s so easy to forget about the 2nd parameter, and sometimes I try to put the true parameter to auto-load the database in the 2nd slot like this:
$this->load->model('my_model', true); // WRONG!
Of course, the easiest solution is to autoload the database through the config, but that can be a little inefficient for apps that don’t use the DB on every page.