【问题标题】:How to set wildcard option in CI's ->like()如何在 CI 的 ->like() 中设置通配符选项
【发布时间】:2014-10-10 10:16:57
【问题描述】:

我需要像这样用 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

如何防止 *Black Slash ( \ ) *

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

谢谢

【问题讨论】:

  • $search = str_replace('\\', '', $search);
  • 做了但还是一样
  • 那么当您尝试$search = str_replace(" ","%",$search); 而不是您的时会发生什么?

标签: codeigniter codeigniter-2


【解决方案1】:

documentation 声明:

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

基本上,您不能将原始"%" 传递给->like()。也就是说,您无法完全控制通配符的去向。这很接近:

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

它会产生类似的东西:

WHERE name LIKE '%Spinner%' AND name LIKE '%60%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2019-01-21
    • 2014-11-16
    相关资源
    最近更新 更多