在我的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”条款。
答案 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));
请参阅此链接,这最符合您的要求。