【发布时间】:2018-04-08 04:29:00
【问题描述】:
我需要使用 AES_DECRYPT 的 sql 方法,但字符串没有解密。
它在 sql 中有效,但在 yii2 afterfind 方法中无效
public function afterFind() {
parent::afterFind();
//$this->name = new Expression('AES_DECRYPT("'.$this->name.'", "key test") as name ');
$this->name = new Expression('cast(AES_DECRYPT("'.$this->encrypt_name.'", "key test") as char) as name');
//return true;
}
【问题讨论】:
-
AES_DECRYPT不能在afterFind()中工作,因为它必须由 MySql 处理(您可以使用 PHP,但您很可能还想加密它在 PHP 中)。在通过修改select查询或类似查询来获取数据时,是否可以使用AES_DECRYPT表达式? -
deos 这对你有帮助 stackoverflow.com/questions/16556375/…
-
不,先生,这对我没有帮助。
-
确切的错误是什么?形成了什么确切的查询?看看执行的查询。您可以在调试工具栏中找到执行的查询。
-
@R13e 请查看数据库表截图。我将需要在 db 表 scrrenshot 中进行精确查询。我如何将 AES_DECRYPT 放入 afterfind 方法中。