簡體   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