2014-10-10 31 views
0

我需要格式化我的SQL像這樣的CI,如何設置在CI的通配符選項 - 像>()

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添加。

感謝

+0

'$搜索= str_replace函數( '\\', '',$搜索);' – 2014-10-10 10:22:14

+0

沒有,但還是一樣 – TED 2014-10-10 10:23:49

+0

所以當你嘗試'$ search = str_replace(「」,「%」,$ search);'而不是你的? – 2014-10-10 10:30:53

回答

0

documentation狀態:

注:傳遞給這個函數的所有值都會自動轉義。

基本上,您無法將原始"%"轉換爲->like()。也就是說,你不能完全控制通配符的去向;此接近:

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

它會產生這樣的:

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