Вопрос:

Codeigniter выберите запрос с привязками

codeigniter binding

5953 просмотра

3 ответа

85 Репутация автора

У меня большая проблема, которую я не могу решить. В codeigniter я создал модель, которая сделала это:

public function listazas($mettol, $mennyit, $feltetel)
    {
        $query = "SELECT * FROM vicc ORDER BY ? DESC LIMIT ?,?";
        $query = $this->db->query($query, array($feltetel, $mettol, $mennyit));

        return $query->result_array();
    }

В контроллере я использую это:

   $viccek = $this->index_model->listazas(0, 10, "ertekeles");

   $this->load->view('index/index', array(
       'viccek' => $viccek
   ));

И здесь SQL не делает порядок по разделам ... почему?

Автор: tthlaszlo Источник Размещён: 18.05.2012 12:12

Ответы (3)


3 плюса

10067 Репутация автора

Решение

Ну, это потому, что вы делаете ORDER BY 'column'вместо ORDER BY column.

Вам нужно будет заменить текущую функцию:

public function listazas($mettol, $mennyit, $feltetel)
{
    $feltetel = $this->db->escape_like_str($feltetel);
    $query = "SELECT * FROM vicc ORDER BY {$feltetel} DESC LIMIT ?,?";
    $query = $this->db->query($query, array($mettol, $mennyit));

    return $query->result_array();
}

Основном ваш query()бежал $feltetelс ''вокруг нее, что делает его действовать как строка вместо имени столбца.

Для такого простого запроса вы можете сделать это проще с помощью Active Records .

Вы также можете попытаться устранить неполадки самостоятельно, запустив echo $this->db->last_query();после $this->db->query()и сравнить результат.
Тогда вы бы заметили ''после ORDER BY.

Автор: Robin Castlin Размещён: 18.05.2012 12:36

0 плюса

51 Репутация автора

так просто взглянуть на этот пример, только модель только в контроллере, вам просто нужно вызвать метод с этими параметрами для более детального решения, которое вы можете спросить у меня

public function read_all($limit,$start){
    $this->db->select('*');        
    $this->db->from('postes');
    $this->db->order_by('id', 'ASC');
    $this->db->limit($limit, $start);    
    $q = $this->db->get();
    return $q->result_array();
}
Автор: Sinte Размещён: 08.09.2016 09:48

1 плюс

11 Репутация автора

$sql = "INSERT INTO tbl_user (name, age, groupname)
        VALUES (?, ?, ?)";
$this-> db-> query($sql,array('codeigniter', 35, 'Group 1'));
Автор: ramkalyan Размещён: 02.11.2017 12:04
Вопросы из категории :
32x32