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