Быстрый старт: Пример кода
Здесь приведён пример использования класса для работы с базами данных. За более подробной информацией обращайтесь к отдельным страницам данного руководства.
Инициализация класса работы с базами данных
Приведённый ниже код загружает и инициализирует класс работы с базами данных, в соответствии с настройками, указанными в файле конфигурации:
$this->load->database();
После загрузки класс готов к использованию как описано ниже.
Замечание: Если все ваши страницы требуют доступа к базе данных, вы можете настроить автоматическое подключение. Смотрите страницу с описанием подключений для получения более подробной информации.
Стандартный запрос с получением множества результатов (объектная версия)
$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->email;
}
echo 'Всего результатов: ' . $query->num_rows();
Приведённая выше функция result() возвращает массив объектов. Пример: $row->title
Стандартный запрос с получением множества результатов (версия с массивами)
$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'];
}
Приведённая выше функция result_array() возвращает массив индексов. Пример: $row['title']
Тестируем получение результатов выборки
Если вы выполняете запросы, которые могут возвращать пустой результ, то для проверки количества возвращаемых строк используйте функцию num_rows() :
$query = $this->db->query("ВАШ ЗАПРОС");
if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
echo $row->title;
echo $row->name;
echo $row->body;
}
}
Стандартный запрос с единичым результатом выборки
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;
Функция row() возвращает объект. Пример: $row->name
Стандартный запрос с единичым результатом выборки (версия с массивами)
$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];
Функция row_array() возвращает массив. Пример: $row['name']
Стандартная вставка
$sql = "INSERT INTO mytable (title, name)
VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();
Запрос Active Record
Шаблон Active Record позволяет упростить использование возвращаемых данных:
$query = $this->db->get('table_name');
foreach ($query->result() as $row)
{
echo $row->title;
}
Функция get() возвращает все записи из указанной таблицы. Класс Active Record содержит полный набор функций для работы с данными.
Вставка данных с использованием Active Record
$data = array(
'title' => $title,
'name' => $name,
'date' => $date
);
$this->db->insert('mytable', $data);
// Создаёт: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')