Если вы используете код, предоставленный ранее:
$this->db->set('password',"AES_ENCRYPT('{$data['password']}','my_key')",FALSE);
, вы все равно должны экранировать пароль перед передачей его в db-> set
use:
$pass = $this->db->escape($data['password']);
Таким образом, если пароль содержит специальные символы, он не убивает запрос