2

在我的 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”子句。

4

2 回答 2

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 :) ...
于 2013-05-08T08:39:31.357 回答
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));

请参考此链接,这最适合您的要求。

codeigniter 中的查询绑定

于 2013-05-08T08:22:12.230 回答