Laravel 查询绑定重用

Laravel Query Binding Reuse

您好 Laravel 7 与 sqldrv driver。 我有一个很大的查询,我使用了很多绑定,在查询中使用了一些相同的倍数,比如 ids 和 stamps。

示例: $query=... var = :id ... INSERT INTO ... foo = :i ... WHERE toni = :i ... "; $bindings =["id" => 123];

当我尝试执行 运行 查询 DB::statement($query, $bindings); 时,出现此错误:Illuminate\Database\QueryException: SQLSTATE[07002]: [Microsoft][ODBC Driver 17 for SQL Server]COUNT field incorrect or syntax error (SQL:

我读到我可以在 config\database.php 'options' => [ PDO::ATTR_EMULATE_PREPARES => true, ] 中添加,但它不起作用,可能是因为它是 sqlsrv driver。 我也可以在 SQL 查询的 header 中声明和设置变量,但我认为这是不必要的努力。

是否有重用绑定

我使用 SQL 变量解决问题,我在顶部声明它们并在查询的任何地方使用它。所以我每个变量只使用一个绑定。

DECLARE @cBOstamp as varchar(25) = :bostamp

我看到的唯一问题是变量声明类型。您必须始终输入变量。