Быстрый старт: примеры кода
На этой странице содержатся примеры кода, показывающие как использовать класс БД. Для получения подробной информации пожалуйста прочтите индивидуальные страницы, где описана каждая функция.
Инициализация класса БД
Следующий код загружает и инициализирует класс БД, основываясь на ваших конфигурационных настройках:
$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 'Total Results: ' . $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("YOUR 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}')