Laravelで複雑なSQLを実行する際は、ヒアドキュメントを使用した方がわかりやすい場合があります。
以下は全く複雑なSQLではありませんが、基本となる記述方法になります。
use DB;
public function findUser($userId)
{
$key = config('app.key');
$sql = <<<SQL
SELECT
user_id,
CONVERT(AES_DECRYPT(UNHEX(first_name), ?)USING utf8) first_name,
CONVERT(AES_DECRYPT(UNHEX(last_name), ?)USING utf8) last_name,
FROM
users
WHERE
user_id = ?
SQL;
$userModel = DB::select($sql, [$key, $key, $userId]);
}
第二引数に配列で値を渡すことで、バインドパラメータを使用できる。
SQLの疑問符プレースホルダー(?)の数だけ用意してあげます。
DB::select($sql, [$key, $key, $userId])