我正在使用Laravel's raw query从SQL Server连接和检索记录。
$rfaccounts = DB::connection('sqlsrv')->table('tbl_rfaccount')
->whereRaw("id = CONVERT(binary, 'acc1')")
->get();
这行之有效并成功返回了数据库记录,但是这很危险,因为我需要用提交的表单字段替换“ acc1”,这样它才容易受到SQL注入的攻击。
$rfaccounts = DB::connection('sqlsrv')->table('tbl_rfaccount')
->whereRaw("id = CONVERT(binary, '?')", 'acc1')
->get();
但是这不起作用...并从'?'中删除'' SQL只是抛出一个错误,指出找不到列“ acc1”。
那我该怎么做呢?
答案 0 :(得分:0)
必须反过来做。
$rfaccounts = DB::connection('sqlsrv')->table('tbl_rfaccount')
->whereRaw("CONVERT(varchar, id) = ?", 'acc1')
->get();
仍然不知道为什么它不起作用。