1
我有以下查詢作品的權利在SQL查詢工作在SQL但不是在PHP
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");
任何人都可以看出錯誤?
UPDATE:
我設法打印查詢的建議後,這是相同的
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?
爲什麼不在第二個例子中只回顯傳遞給query()的字符串,並檢查其差異是什麼? –
我不能使用codeigniter,它不是那麼簡單的打印查詢,或者至少我不知道如何去做。 – user2417624
我管理打印查詢,我已經更新了問題....查詢是相同的,但結果仍然是錯誤的。請重新閱讀這個問題,看看更新 – user2417624