查询在sql中工作但在php中不起作用

时间:2015-12-06 13:33:29

标签: php mysql regex

我有以下查询在sql

中正常工作
SELECT *
FROM `dsrequest`
WHERE dsrequeststatusID NOT IN ('4', '5', '6')
AND CASE
WHEN ('Κ' REGEXP '^[0-9]+$')  THEN
dsrequestClientAfm LIKE 'Κ%'
ELSE
( dsrequestClientFirstName LIKE 'Κ%' OR  dsrequestClientLastName LIKE 'Κ%' OR  dsrequestClientEmail LIKE 'Κ%'  )
END

但是当我使用变量而不是'K'将它放在php中时,我给出了错误的结果集,这似乎是部分根本不起作用的地方。我得到dsrequestStatusID为4的记录,不应该是这种情况。

这是我在php中使用的查询:

$this->db->query("SELECT *
FROM `dsrequest`
WHERE dsrequeststatusID NOT IN ('4', '5','6')
AND CASE
WHEN ('$searchString' REGEXP '^[0-9]+$')  THEN
dsrequestClientAfm LIKE '$searchString%'
ELSE
( dsrequestClientFirstName LIKE '$searchString%' OR  dsrequestClientLastName LIKE '$searchString%' OR  dsrequestClientEmail LIKE '$searchString%'  )
END");

任何人都可以发现错误吗?

更新:

建议后我设法打印查询,它是相同的

SELECT * FROM `dsrequest` 
WHERE dsrequeststatusID NOT IN ('4', '5','6') 
AND CASE 
WHEN ('Κ' REGEXP '^[0-9]+$') THEN 
dsrequestClientAfm LIKE 'Κ%' 
ELSE 
( dsrequestClientFirstName LIKE 'Κ%' OR dsrequestClientLastName LIKE 'Κ%' OR dsrequestClientEmail LIKE 'Κ%' ) 
END

任何人都可以发现我不能发现任何差异吗?正则表达式是问题吗?他们在sql和php之间有什么区别吗?

1 个答案:

答案 0 :(得分:0)

很抱歉让你们所有人陷入困境。问题出在我的codeigniter代码的其他地方,而不是查询。一旦我解决了这个问题,现在查询就像魅力一样。