這是我在CakePHP中3.X查詢CakePHP的3.2查找查詢問題
public function confirmation($token){
$result = $this->Users->findAllByVerificationCode($token);
debug($result->first());
die();
}
如果變量$令牌太長,結果總是null
,但如果我長話短說,我得到的結果。
這是怎麼回事?
這是我在CakePHP中3.X查詢CakePHP的3.2查找查詢問題
public function confirmation($token){
$result = $this->Users->findAllByVerificationCode($token);
debug($result->first());
die();
}
如果變量$令牌太長,結果總是null
,但如果我長話短說,我得到的結果。
這是怎麼回事?
檢查數據庫模式。可能您的令牌字段對於您要放入的數據來說太小,並且令牌被截斷。
問題解決了,無論是$token
和verification_code
是相同的,兩者都是數字的組合,但是它們中的一個是String
型的,另一種是一個Integer
和CakePHP不會自動轉換的類型。
然後它是如何工作的時候令牌很短 –
請在我的回答中看到評論。問題不在於數據類型不同,而在於數據類型不足以保存整個令牌,所以令牌被截斷,正如我的答案中所示。 – CoderCreative
我已經檢查了我的數據庫,我試着用條件查找,我也寫了sql查詢,但結果總是爲空,但是每次我嘗試使用簡短的'$ token'我都會得到結果。 –
'debug($ result)'顯示我的sql查詢,everyhing是正確的,'$ token'和'verification_code'這兩個值都是相同的。但結果總是'空' –
這仍然聽起來像截斷問題(假設你正在使用MySQL)。您保存的最長令牌有多久?底層數據庫字段的數據類型和長度是多少? – CoderCreative