查询在sql中有效,但在php中无效


Query works in sql but not in php

我有以下查询,它在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

但当我把它放在php中时,使用变量而不是"K"会给我一组错误的结果,也就是说,where部分似乎根本不起作用。我得到的记录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之间有什么区别吗?

很抱歉给你们带来麻烦。问题出在我的代码点火器代码的其他地方,而不是查询。一旦我修复了这个问题,查询现在就像一个符咒。