CodeIgniter, руководство пользователя к версии 1.6.1


Быстрый старт: Пример кода

Здесь приведён пример использования класса для работы с базами данных. За более подробной информацией обращайтесь к отдельным страницам данного руководства.

Инициализация класса работы с базами данных

Приведённый ниже код загружает и инициализирует класс работы с базами данных, в соответствии с настройками, указанными в файле конфигурации:

$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}')