Я довольно новыми для Laravel и столкнулись с проблемой построения запроса с использованием CONCAT:Laravel: с помощью WHERE CONCAT в запросе
#From input
$password = $request->password;
#sql statement
UserMainTbl::where('username', '=', $username)->whereRaw('hashkey', '=', CONCAT('admin_id'.$password))
Таблица: UserMainTbl
поля: имя пользователя, hashkey, admin_id
Got ошибка:
Call to undefined function App\Http\Controllers\Auth\CONCAT()
------
Update:
Я меняю свой код и останавливаю вышеуказанную ошибку. Но получить новую ошибку.
->where('hashkey', '=', DB::raw('concat(admin_id,"$password")'))
Column not found: 1054 Unknown column 'password123' in 'where clause' (SQL: select * from
user_main_tbl
whereusername
= xxx andhashkey
= concat(admin_id,password123) limit 1)
------
Update [Решить]:
Мой плохо на этом. Это просто простая строка. Вот решение для дальнейшего использования, если оно есть. Lol:
->where('hashkey', '=', DB::raw('concat(admin_id,"'.$password.'")'))
Может кто-то помочь, чтобы указать, как я могу сделать это правильно?
Большое спасибо.
у вас нет функции CONCAT. если вы имеете в виду mysql CONCAT ... тогда эта часть CONCAT должна быть включена внутри одной кавычки. – barudo
Спасибо @barudo за ваш ответ. Я обновляю свой вопрос в соответствии с вашими отзывами. И получил еще одну ошибку. Как заставить пароль стать строкой не как столбец? –
вы можете написать его как '-> где ('hashkey', '=', DB :: raw (" concat (admin_id, '$ password') "))' – jagzviruz