CodeIgniter → Работа с базой данных

Загрузка и инициализация класса для работы с базой данных в CodeIgniter:

$this->load->database();

Параметры подключения настраиваются в конфигурационном файле application/config/database.php:

 $db['default']['hostname'] = "localhost";
 $db['default']['username'] = "root";
 $db['default']['password'] = "";
 $db['default']['database'] = "database_name";
 $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['default']['swap_pre'] = "";
 $db['default']['autoinit'] = TRUE;
 $db['default']['stricton'] = FALSE;

Описание параметров:

hostname — Имя хоста сервера базы данных. Обычно «localhost».

username — Имя пользователя, соединяющегося с базой данных.

password — Пароль, использующийся для соединения с базой данных.

database — Имя базы данных.

dbdriver — Тип базы данных, например: mysql, postgres, odbc и т.д. Должен быть указан в нижнем регистре.

dbprefix — Опциональный префикс для таблиц, который добавляется к имени таблицы при использовании запросов Active Record. Это позволяет использовать несколько инсталяций CodeIgnter с одной БД.

pconnect — TRUE/FALSE (boolean) — использовать ли постоянное соединение.

db_debug — TRUE/FALSE (boolean) — отображать ли ошибки БД.

cache_on — TRUE/FALSE (boolean) — включено ли кеширование, смотрите также класс Database Caching.

cachedir — Абсолютный серверный путь к директории кешей.

char_set — Используемая кодировка при соединении.

dbcollat — Кодировка сравнения.

swap_pre — Префикс таблицы по умолчанию, который переключается dbprefix. Это полезно для выпускаемых приложений, которые могут еще использовать вручную написанные запросы, но необходимо предусмотреть использование префикса для конечного пользователя.

autoinit — Использовать или нет автоматическую инициализацию БД.

stricton — TRUE/FALSE (boolean) — Использовать ли «Strict Mode» (строгий режим) соединений, удобно для обеспечения строгого SQL при разработке приложения.

port — Номер порта базы данных.

В конфигурационном файле application/config/database.php можно хранить множественные настройки для нескольких баз данных. Глобально указать системе, какую группу настроек использовать можно с помощью переменной:

$active_group = "default";

Для автоматической загрузки соединения на каждой странице достаточно добавить в application/config/autoload.php:

$autoload['libraries'] = array('database');

Простой пример работы с базой данных в CodeIgniter 2:

$query = $this->db->query('SELECT name, title, email FROM my_table');

 foreach ($query->result_array() as $row)
 {
     echo $row['title'];
     echo $row['name'];
     echo $row['email'];
 }