代码点火器 - 使用where和like的MySQL查询

时间:2015-12-26 12:34:03

标签: php mysql codeigniter

我搜索过每一个答案,但没有描述我想要的东西,或者我对它们的理解也不是很正确。所以这就是我的问题。我想要一个复杂的"查询如下:

select * from MyTable
where PropertyA='$propertyValue'
and (id like '%$someValue%' or name like '%$someValue%' or description like '%$someValue%') 
order by id desc limit 10 offset $offsetValue

如何在代码点火器中编写此查询? $propertyValue, $someValue, $offsetValue都是php变量。当然我需要避免sql注入。我也在phpmyadmin中对此进行了测试,我的查询工作正常。

1 个答案:

答案 0 :(得分:9)

对于SQL注入,使用绑定查询和活动记录是安全的,它将使您免于SQL注入,因为框架完成了逃避易受攻击的用户输入的所有工作。

您只需在Active record FOR 3.X版本中编写代码

$this->db->select('*');
$this->db->where('PropertyA', $propertyValue);
$this->db->group_start();
$this->db->like('id', $someValue);
$this->db->or_like('name', $someValue);
$this->db->or_like('description', $someValue);
$this->db->group_end();
$this->db->order('id','desc')
$this->db->limit($limit, $start);// add your limit here
$this->db->get('MyTable');