【问题标题】:Laravel Query Binding ReuseLaravel 查询绑定重用
【发布时间】:2020-10-02 14:13:41
【问题描述】:

您好,在 Laravel 7 上使用 sqldrv 驱动程序。 我有一个很大的查询,我使用了很多绑定,在查询中有些相同的倍数,比如 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 驱动程序。 我也可以在 SQL 查询的标头中声明和设置变量,但我认为这是不必要的。

有没有办法重用绑定

【问题讨论】:

    标签: laravel sqlsrv


    【解决方案1】:

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

    DECLARE @cBOstamp as varchar(25) = :bostamp

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

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 2017-06-14
      • 2013-08-19
      • 2013-10-14
      • 2018-08-11
      • 1970-01-01
      • 2015-02-03
      • 2014-09-08
      • 1970-01-01
      相关资源
      最近更新 更多