在 Laravel 4 中转义原始 SQL 查询

2022-08-30 13:01:36

如何转义在Laravel 4中传递给原始查询的参数?我期望类似的东西(从Laravel 3敲响了铃铛),也尝试了(我认为这可以通过PDO对象获得)DB::escape()DB::quote())

$query = DB::select("SELECT * FROM users WHERE users.id = " . DB::escape($userId));

我们不能将 select 方法与占位符一起使用,因为以上只是我们尝试实现的目标的简化示例。我们有一个大型自定义查询,其中包含一些无法适应查询生成器的嵌套选择查询。

在插入Laravel 4之前逃避某些东西的最佳方法是什么?

编辑:

我刚刚发现您可以访问PDO对象并以这种方式使用报价函数。这仍然是最好的方法,还是有更简单的方法来访问此功能?

DB::connection()->getPdo()->quote("string to quote");

答案 1

你可以通过这种方式,通过门面引用你的字符串。DB

DB::connection()->getPdo()->quote("string to quote");

当我发现它时,我确实把这个答案放在了我的问题中,但是我现在把它作为一个实际的答案,让其他人更容易找到它。


答案 2
$value = Input::get("userID");

$results = DB::select( DB::raw("SELECT * FROM users WHERE users.id = :value"), array(
   'value' => $value,
 ));

更多详情 这里


推荐