I have a database with encrypted field using AES_ENCRYPT
the data is encrypted and should stay this way, so there is no way of changing the method it is encrypted with.
Recently I started working on a new project with Laravel. when I tried to do an update with a where clause on the field encrypted with AES, I received the following query:
SELECT * FROM `users` WHERE `mail` = ? LIMIT 1
And the following binding:
AES_ENCRYPT('email@email.com', 'somekey')
For the following code:
$email = Input::get('email');
$user = User::where("mail", "AES_ENCRYPT('{$email}', '{$this->aesKey}')")->first();
Which is basically logical - But how do I use force it do the following Query:
SELECT * FROM `users` WHERE `mail` = AES_ENCRYPT(?, 'someKey') limit 1
With this binding:
email@email.com
Hope there is a way passing function to the where clause on the value