Подтвердить что ты не робот

Codeigniter: $this-> db-> last_query(); выполнить запрос?

Выполняется ли выполнение запроса в предложении get_where() следующего оператора активной записи codeigniter?

$this->db->select('*');
    $q = $this->db->get_where('Contacts', array('id' => $contact_id));

    $sql = $this->db->last_query();

Или это происходит, когда вы вызываете result_array()?

И $this->db->last_query(); надежный способ получения строки запроса.

4b9b3361

Ответ 1

Выполнение запроса выполняется во всех методах get, таких как

$this->db->get('table_name');
$this->db->get_where('table_name',$array);

В то время как last_query содержит последний запрос, который был запущен

$this->db->last_query();

Если вы хотите получить строку запроса без выполнения, вам придется это сделать. Перейти к системе /database/DB _active_rec.php Удалить из этих функций общедоступное или защищенное ключевое слово

public function _compile_select($select_override = FALSE)
public function _reset_select()

Теперь вы можете написать запрос и получить его в переменной

$this->db->select('trans_id');
$this->db->from('myTable');
$this->db->where('code','B');
$subQuery = $this->db->_compile_select();

Теперь запрос reset, поэтому, если вы хотите написать другой запрос, объект будет очищен.

$this->db->_reset_select();

И дело сделано. Ура!!! Примечание. При использовании этого способа вы должны использовать

$this->db->from('myTable')

вместо

$this->db->get('myTable')

который выполняет запрос.

Взгляните на этот пример