如何在 CI 的 ->like() 中设置通配符选项

问题描述 投票:0回答:1

我需要像这样使用 CI 格式化我的 SQL,

SELECT *
FROM (`items`)
WHERE `name`  LIKE '%Spinner%60%'
ORDER BY `name` asc

这是我的数据库查询

$search = str_replace(" ","%",$search);

$this->db->from('items');
$this->db->like('name', $search);
$this->db->order_by("name", "asc");

但我认为,

SELECT *
FROM (`items`)
WHERE `name`  LIKE '%Spinner\%60%'
ORDER BY `name` asc

如何防止*黑斜线 ( \ ) *

注:这个黑色斜杠是CI添加的。

谢谢

php codeigniter codeigniter-2
1个回答
0
投票

文档指出:

注意:传递给此函数的所有值都会自动转义。

基本上,您无法将原始

"%"
传递给
->like()
。也就是说,您无法完全控制通配符的去向;这很接近:

$this->db->like(['name' => 'Spinner', 'name' => '60'])

它会生成类似以下内容:

WHERE name LIKE '%Spinner%' AND name LIKE '%60%'
© www.soinside.com 2019 - 2024. All rights reserved.