当我在我的DDBB中执行更新或删除并且我想使用LIKE语句时,不考虑这一点,并且只执行WHERE句子。
如果我运行以下查询:
$this->db->or_like('title', 'name');
$this->db->where('id <=', 9823);
$this->db->update('tabla_name', $data);
var_dump( $this->db->last_query() );
我收到以下查询,其中没有应用LIKE :
UPDATE `tabla_name` SET `field1` = 'value1', `field2` = 'value21' WHERE `id` <= '9823'
DELETE子句也是如此,当使用 LIKE 时,活动记录不会被LIKE过滤器考虑在内。我使用的是系统核心版本2.0.2,但我在2.1.7中重现了同样的错误
答案 0 :(得分:1)
经过一段时间的研究,我在Ellislab论坛上找到了以下解决方案:
http://ellislab.com/forums/viewthread/99235/P15
解决方案不是or_like
也不是like
,而是仅用于执行更新或删除时的句子:
$this->DB->or_where( $field . ' like', '%' . $value . '%' );
$this->DB->where( $field . ' like', '%' . $value . '%' );