2010-09-30 83 views
4

我将如何使用代码点火器活动记录插入/更新/从数据库中选择数据使用内置的aes加密/解密函数的MySQL?具有活动记录的代码点火器MySQL AES?

我知道我可以只使用正常的sql查询,但我想使用活动记录的理想选择。

感谢

回答

5

如果使用以前提供的代码:

$pass = $this->db->escape($data['password']); 

,如果这样:

$this->db->set('password',"AES_ENCRYPT('{$data['password']}','my_key')",FALSE); 

你还是应该将其传递到DB->设置

使用前逃脱密码密码包含特殊的字符,它不会杀死查询

+0

不错的加法克里斯,值得我的书upvote s,欢迎来到SO;) – 2010-10-05 06:14:51

+0

ta :)我认为这是一个很好的主意,可以帮助某人,因为我已经找到了解决问题的次数,甚至没有提出问题。 – PottyBert 2010-11-12 13:34:45

3

您仍然可以使用AES_ENCRYPT,如果你通过传递FALSE作为最后一个参数关闭转义为特定条款:

$pass = $this->db->escape($data['password']); 
$this->db->set('password', "AES_ENCRYPT('{$pass}','my_key')", FALSE); 

还指出你的内置Encryption Class的CI,并一篇关于考虑1-way encryption的文章。