不要在 Laravel Eloquent ORM 中使用准备好的语句?

Kev*_*Pei 5 sql prepared-statement laravel infinidb eloquent

我可以让 Eloquent ORM 在不使用准备好的语句的情况下运行查询吗?或者我必须使用whereRaw()

我需要使用原始查询,因为我正在尝试与 InfiniDB 交互,而 InfiniDB 缺乏对 PHP 准备语句的支持。无论如何,所有查询都将使用内部生成的数据,而不是用户输入,因此这不应该成为安全问题。

pet*_*erm 1

SELECT对于除您可以使用之外的任何其他内容unprepared()

DB::unprepared($sql);
Run Code Online (Sandbox Code Playgroud)

对于没有准备的人,SELECT您可以query()通过访问活动 PDO 连接来使用普通 PDOgetPdo()

$pdo = DB::getPdo();
$query = $pdo->query($sql);
$result = $query->fetchAll();
Run Code Online (Sandbox Code Playgroud)