【问题标题】:Laravel - Query Builder Where SyntaxLaravel - 查询生成器 Where 语法
【发布时间】:2015-12-07 09:03:35
【问题描述】:

我在 laravel 查询构建器中遇到了一些困难。

我有这样的语法:

$data['tmasuk'] =TSediam::where('kd_lokasi', $kd_lokasi)->where('kd_brg', $kd_brg)->where('DATEPART(YYYY,tgldok)',$tgldok)->get();

它说错误

遇到未捕获的异常 类型:Illuminate\Database\QueryException 消息:SQLSTATE[42S22]:[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名“DATEPART(YYYY,tgldok)”无效。 (SQL: select * from [t_sediam] where [kd_lokasi] = 023040500414964000KD and [kd_brg] = 1010302001000001 and [DATEPART(YYYY,tgldok)] = 2015) 文件名:C:\wamp\www\sedia\vendor\illuminate\database\Connection.php 行号:651

**

但是,如果我通过 sql server management studio 检查查询就可以了

select * from [t_sediam] where [kd_lokasi] = '023040500414964000KD' and [kd_brg] = '1010302001000001' and DATEPART(YYYY,tgldok) = '2015'

那么,解决方案是什么?谢谢

【问题讨论】:

    标签: php sql-server laravel orm eloquent


    【解决方案1】:

    尝试使用DB::raw:

    $data['tmasuk'] = TSediam::where('kd_lokasi', $kd_lokasi)
                              ->where('kd_brg', $kd_brg)
                              ->where( \DB::raw( "DATEPART(YYYY,tgldok) = '" . $tgldok . "'"  ) )
                              ->get();
    

    【讨论】:

    • 它说错误消息:找不到类'DB'
    • 尝试使用\DB::raw 而不是DB::raw
    • 然后尝试指定:use Illuminate\Support\Facades\DB;(或仅在文件顶部的use DB;,并使用DB::raw
    • 它说错误 消息:尚未设置外观根目录。
    • 您在访问您的 Facade 时遇到问题,其他 Facade 是否可以在您的应用程序上运行?
    【解决方案2】:

    你不能像那样查询哪里;

    ->where('DATEPART(YYYY,tgldok)',$tgldok)
    

    表示您正在搜索名称为 DATEPART(YYYY,tgldok) 的字段

    试试这样的:

    $data['tmasuk'] = TSediam::select('DATEPART(YYYY,tgldok) AS datepart')
      ->where('kd_lokasi', $kd_lokasi)
      ->where('kd_brg', $kd_brg)
      ->where('datepart',$tgldok)
      ->get();
    

    【讨论】:

    • 它显示错误 消息:SQLSTATE[42S22]:[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]列名“datepart”无效。 (SQL: select [DATEPART(YYYY,tgldok)] as [datepart] from [t_sediam] where [kd_lokasi] = 023040500414964000KD and [kd_brg] = 1010302001000001 and [datepart] = 8)
    • 我没有使用过 ODBC 驱动程序,请查看参考资料了解如何编写 SELECT ... AS .. 查询..
    猜你喜欢
    • 2017-09-12
    • 2018-01-03
    • 2015-07-25
    • 2018-12-26
    • 2019-05-06
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2014-08-20
    相关资源
    最近更新 更多