codeigniter
Структура запроса
Поиск…
Выбор данных
Следующие функции позволяют создавать инструкции SQL SELECT.
$this->db->get()
Это запускает запрос выбора и возвращает результат. Может использоваться самостоятельно для извлечения всех записей из таблицы:
$query = $this->db->get('tablename'); // Produces: SELECT * FROM tablename
Второй и третий параметры позволяют установить условие ограничения и смещения:
$query = $this->db->get('tablename', 10, 20);
// Executes: SELECT * FROM tablename LIMIT 20, 10
// (in MySQL. Other databases have slightly different syntax)
Выбор данных
Выбор данных с условием
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->get();
return $query->result();
Выбор данных с несколькими условиями
$conditions = array('column_name_1' => $value_1, 'column_name_2' => $value_2);
$query = $this->db->select('*')
->from('table_name')
->where($conditions) // Conditions
->get();
return $query->result();
Выберите данные с условием и лимитом
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->get();
return $query->result();
Выберите данные с условием, максимальными строками и порядком по убыванию
$query = $this->db->select('*')
->from('table_name')
->where('column_name', $value) // Condition
->limit(10) // Maximum 10 rows
->order_by('id','DESC') // Order data descending
->get();
return $query->result();
Выбор данных со вторым необязательным параметром
Обычно мы не используем второй параметр в select([$select = '*'[, $escape = NULL]])
в CodeIgniter. Если вы установите значение FALSE, CodeIgniter не будет пытаться защитить ваши имена полей или таблиц.
В следующем примере мы будем выбирать поле типа datetime, форматируя его с помощью SQL-запроса и устанавливая его FALSE
(делая это, мы собираемся сообщить CI, чтобы он не избежал запроса автоматически).
public function getUserInfo($id)
{
$this->db->select('BaseTbl.id, BaseTbl.name, DATE_FORMAT(BaseTbl.createdDtm, "%d-%m-%Y") AS createdDtm', FALSE); // FALSE is the second optional parameter
$this->db->from('tbl_users as BaseTbl');
$this->db->where('isDeleted', 0);
$this->db->where('BaseTbl.id', $id);
$query = $this->db->get();
return $query->result();
}
Если мы не установили его в FALSE
, он автоматически ускользнет и сломает запрос.
Объединение таблиц с помощью Query Builder
Иногда нам нужно объединить несколько таблиц, чтобы получить агрегированные данные взамен. вот как мы можем добиться того же, используя CodeIgniter Query Builder / Active Records.
public function getStudentInfo($studentid){
$query = $this->db->select("st.id, st.name, st.class, mk.maths, mk.science")
->from("students as st")
->join("marks as mk", "mk.student_id = st.id", "inner")
->where("st.id", $studentId)
->get();
return $query->result();
}
Здесь мы используем join () для объединения нескольких таблиц, и мы можем изменить тип соединения в третьем параметре, например «внутренний», «левый», «правый» и т. Д.