在 Laravel 4 中转义原始 SQL 查询

新手上路,请多包涵

如何转义传递给 Laravel 4 中原始查询的参数?我期待类似 DB::escape() 的东西(它从 Laravel 3 响起)并且还尝试 DB::quote() (我认为可以通过 PDO 对象 获得)

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

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

在插入 Laravel 4 之前转义某些内容的最佳方法是什么?

编辑:

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

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

原文由 Dwight 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 356
2 个回答

您可以通过 DB 外观以这种方式引用您的字符串。

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

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

原文由 Dwight 发布,翻译遵循 CC BY-SA 3.0 许可协议

$value = Input::get("userID");

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

更多细节在 这里

原文由 Arun Kumar M 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏