首页 > 解决方案 > 在 SELECT Query Builder 中使用 AES_DECRYPT - Laravel

问题描述

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

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

像这样:

$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,但运气并不在我这边。预先感谢。

标签: mysqllaravellaravel-query-builder

解决方案


使用\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();

推荐阅读