CodeIgniter - 查询绑定“order by”

时间:2013-05-08 08:18:55

标签: php sql codeigniter

在我的CodeIgniter中,我将查询绑定到一组变量。

$q        = "SELECT * FROM my_table WHERE name=? ORDER BY ?";
$name     = $this->input->get("name");
$order_by = $this->input->get("order_by");
$this->db->query($q, array($name, $order_by));

但“order_by”无法正常工作。我已经搜索过,但我不确定如何“清理”“order by”条款。

2 个答案:

答案 0 :(得分:2)

试试这个,

$order_by_arr = array('name', 'age', 'date');
if (!in_array($order_by, $order_by_arr)) {
  $order_by = 'name';
}

// now u can use $order_by. its safe :) ...

答案 1 :(得分:1)

$order_by = $this->db->escape_like_str($this->input->get("order_by"));
$q        = "SELECT * FROM my_table WHERE name=? ORDER BY {$order_by}";
$name     = $this->input->get("name");
$this->db->query($q, array($name));

请参阅此链接,这最符合您的要求。

Query Binding in codeigniter