У меня есть таблица tbl_rfaccount
со столбцами ID
и PW
с типами данных BINARY(13)
. Мне нужно вставить новую строку следующим образом:
DB::connection('sqlsrv')->table('tbl_rfaccount')->insert([
'ID' => $request->input('username'),
'PW' => $request->input('password'),
]);
Это не работает из-за Implicit conversion from data type varchar to binary is not allowed.
, так что работает так:
DB::connection('sqlsrv')->table('tbl_rfaccount')->insert([
'ID' => DB::raw('CONVERT(binary, \''.$request->input('username').'\')'),
'PW' => DB::raw('CONVERT(binary, \''.$request->input('password').'\')'),
]);
Но теперь у меня есть два проблемы:
- SQL инъекция.
- Это выглядит ужасно.
Что было бы хорошим обходным путем?