Выполнение необработанных запросов в CodeIgniter: методы и примеры

Необработанный запрос в CodeIgniter означает выполнение SQL-запросов напрямую с использованием библиотеки базы данных CodeIgniter, а не с использованием встроенного построителя запросов или методов ActiveRecord. Этот подход полезен, когда вам нужно написать сложные или специальные запросы, которые невозможно легко выполнить с помощью построителя запросов CodeIgniter.

Вот несколько способов выполнения необработанных запросов в CodeIgniter с примерами кода:

  1. Использование метода $this->db->query():

    $query = $this->db->query("SELECT * FROM users WHERE status = 'active'");
    $result = $query->result();
  2. Использование привязок запросов для предотвращения внедрения SQL:

    $sql = "SELECT * FROM users WHERE id = ?";
    $query = $this->db->query($sql, array($userId));
    $result = $query->result();
  3. Выполнение необработанного запроса с несколькими инструкциями:

    $sql = "
    UPDATE users SET status = 'inactive' WHERE last_login < '2022-01-01';
    SELECT * FROM users WHERE status = 'inactive';
    ";
    $query = $this->db->query($sql);
    $results = $query->getResult();
  4. Использование именованных заполнителей для привязок запросов:

    $sql = "SELECT * FROM users WHERE id = :userId";
    $params = array('userId' => $userId);
    $query = $this->db->query($sql, $params);
    $result = $query->result();
  5. Выполнение необработанного запроса и возврат одной строки:

    $sql = "SELECT * FROM users WHERE id = ?";
    $query = $this->db->query($sql, array($userId));
    $row = $query->row();

Не забывайте очищать и проверять вводимые пользователем данные при использовании необработанных запросов, чтобы предотвратить атаки с использованием SQL-инъекций.