Использование AES_DECRYPT в SELECT Query Builder - Laravel - PullRequest
0 голосов
/ 23 декабря 2019

Я пытаюсь расшифровать данные из базы данных 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 в моем запросе, но удача не на моей стороне. Спасибо заранее.

1 Ответ

2 голосов
/ 23 декабря 2019

Использование \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();
...