mysql - 在 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,但运气并不在我这边。预先感谢。
解决方案
使用\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();
推荐阅读
- swagger - 通过 Quarkus 在 Swagger UI 中使用 OIDC
- sql - 计算左外连接表的总和
- java - 在 Android 上,onCompletion 播放声音后不会重绘画布
- javascript - imgkit (wkhtml2image) 无法加载 javascript
- parse-platform - 我无法从我的 Android Studio 应用程序连接到我的 Parse Dashboard
- python - 从视频中提取自然场景统计 (NSS)
- python - 使用 Selenium 加载整个页面后,我的代码在前 100 个项目后停止抓取?
- python - Python:使用python代码的google云存储的`Request exception`问题
- typescript - TypeScript:定义一个表示实现抽象类的类型的参数
- javascript - 将表格添加到预定义的图像模板并将其下载为图像文件