Как обновить каждую строку по ее собственному значению в зашифрованном виде - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь обновить каждое значение столбца.

Я пытаюсь применить шифрование для существующей базы данных

$query = $this->db->query("select firstname from user");

foreach ($query->result_array() as $row)
{
$encr = $this->encryption->encrypt($row['firstname']);

$this->db->set('firstname', $encr);
$this->db->update('user');   
}

В результате получаем первую строку, шифруем ее, затем примените его ко всем строкам, в то время как он предполагает обновлять каждую строку индивидуально, принимая во внимание ее собственное значениеЧто я делаю неправильно ? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 24 октября 2019

Нашли это! Я забыл указать идентификатор. Это сработало:

$query = $this->db->query("select * from user");

foreach ($query->result_array() as $row)
{
$id = $row['id'];
$encr = $this->encryption->encrypt($row['firstname']);

$this->db->set('firstname', $encr);
$this->db->where('id', $id);
$this->db->update('user');  
}

Напоминание, чтобы всегда проверять предположения.

0 голосов
/ 24 октября 2019

Вам необходимо указать свой идентификатор, у вас нет предложения where.

$this->db->where('id', $row['id']); // or whatever is the unique column name.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...