【问题标题】:Using AES_DECRYPT in SELECT Query Builder - Laravel在 SELECT Query Builder 中使用 AES_DECRYPT - Laravel
【发布时间】:2020-04-14 11:28:37
【问题描述】:

我正在尝试从我们的合作伙伴提供的 mysql 数据库中解密数据。 他们在 mysql AES_ENCRYPT(fld_code, md5(CONCAT(fld_id, 'somekey'))) 中使用它加密了它

就我而言,我正在尝试在我的 laravel 代码中使用 AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'somekey'))) as f1

像这样:

$query = DB::connection('db2')->table('tbsample')->select("fld_id", "AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'somekey')))")->get();

我遇到了这种错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'RA3019')))' in 'field list' (SQL: select `fld_id`, `AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'RA3019')))` from `tbsample`) 

我一直在寻找如何在我的查询中使用 AES_Decrypt,但运气并不在我这边。提前致谢。

【问题讨论】:

    标签: mysql laravel laravel-query-builder


    【解决方案1】:

    使用\DB::raw()selectRaw

    $query = DB::connection('db2')->table('tbsample')->select("fld_id", \DB::raw("AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'somekey')))"))->get();
    

    或者

    $query = DB::connection('db2')->table('tbsample')->selectRaw("fld_id, AES_DECRYPT(fld_code, md5(CONCAT(fld_id, 'somekey')))")->get();
    

    【讨论】:

    • 是的!像魅力一样工作。顺便说一句,我尝试使用您提供的第二个选项。非常感谢!
    • 会接受你的回答。但它说You can accept an answer in 4 minutes。我会在 4 分钟后重试 :)
    猜你喜欢
    • 2015-10-22
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2019-10-31
    • 2013-05-27
    • 2019-08-11
    • 1970-01-01
    相关资源
    最近更新 更多