繁体   English   中英

查询在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

但是,当我使用变量而不是'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之间有什么区别吗?

抱歉给大家带来麻烦。 问题出在我的代码初始化代码的其他地方,而不是查询。 一旦我解决了这个问题,查询现在就像一个超级按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM