我對Laravel 5.4和Eloquent Query builder非常不滿。 我正在嘗試通過用戶名和密碼來檢索用戶。雄辯的查詢錯誤
我在我的數據庫已經下列:ID,用戶名,密碼
下面的查詢是爲我工作:
$user = UserModel::where(['username' => $username])->first();
,而這個人是不是:
$user = UserModel::where(['password' => $password])->first();
我在查詢之前打印出$username
和$password
,兩者都是他們應該是的。
我可能做錯了什麼?
編輯:
- 是的,我確實明文存儲密碼。
- 該方法是基於Zend的-XML-RPC服務器
- PHP不返回任何錯誤或異常
- XML-RPC服務器返回「404未知錯誤」故障響應對API的一部分。
- 是的,我確定,這些值不包含任何看不見的字符,確實是正確的。
- 值在請求中被硬編碼,我也試着用相同的結果在查詢中直接對它們進行硬編碼。
- 我正在使用Oracle(我認爲是11g),Laravel 5.4,PHP 5.6
- 值對是正確的,此用戶名屬於此密碼,兩者的格式完全與數據庫中的形式完全相同。
我試圖在與相同的結果,查詢的形式:
$user = UserModel::where('password', $password)->first();
$user = UserModel::where(['password' => $password])->first();
$user = UserModel::where('password', '=', $password)->first();
變化與用戶名導致完全相同的結果中提到的第一個。
你真的以純文本存儲密碼嗎? –
好的。事情是,如果第一個人得到你想要的,而第二個人沒有,那麼它更像是「它實際上找不到」,而不是「有錯誤」。 – apokryfos
是的,我這樣做,這是一個不好的做法,但這只是測試用例,而不是生產。 –