php - Yii2:在插入数据库时​​使用mysql AES_ENCRYPT

标签 php mysql yii2

我遇到以下错误:

AES_ENCRYPT method not found.

请帮助我在 YII2 中使用此 SQL 方法。

public function beforeSave($insert) {
        if (!parent::beforeSave($insert)) {
            return false;
        }
        if($insert) {
            $this->created_at = date('Y-m-d H:i:s');
        }
        $this->updated_at = date('Y-m-d H:i:s');
        $this->name = AES_ENCRYPT("'.$this->name.'", "SECERT KEY");
        return true;
    }

最佳答案

因为这样调用它

$this->name = AES_ENCRYPT("'.$this->name.'", "SECERT KEY");

将假设它是一个 php 方法,并且会搜索可用的 php 函数,而您需要像运行 CONCAT 一样运行它>、SUM 或任何其他 MYSQL 函数。

您应该按以下方式将其与 \yii\db\Expression() 一起使用

$enc = new \yii\db\Expression('AES_ENCRYPT("'.$this->name.'","SECERT KEY")');
$this->name=$enc;

或简化它

$this->name=new \yii\db\Expression('AES_ENCRYPT("'.$this->name.'","SECERT KEY")');

希望对你有帮助。

关于php - Yii2:在插入数据库时​​使用mysql AES_ENCRYPT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49448035/

相关文章:

php - 使用 Codeigniter 从 MySql 返回的 Fullcalendar.js allDay 参数

php - Mysql 用where In条件收集数据

c# - 异常 : "unable to connect to any of the specified mysql hosts"

php - Yii2唯一验证错误:数组到字符串的转换

javascript - Laravel 4 上 TinyMCE 的文件管理器

javascript - 禁用/删除 Metronic 管理主题中的排序顺序

mysql - SQL - 基本内连接查询

php - 在 yii2 中创建扩展线程的自定义类

php - Yii2 查询 OR 条件 1 列的多个值

php - MySQL my.cnf 自动重置