如何通过加密自己的值来更新每一行

时间:2019-10-24 00:02:19

标签: php mysql codeigniter encryption

我正在尝试更新列的每个值。

我正在尝试对现有数据库应用加密

$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 个答案:

答案 0 :(得分:1)

找到了! 我忘记指定ID。这可行:

$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');  
}

提醒您始终检查假设。

答案 1 :(得分:0)

您需要指定ID,没有where子句。

$this->db->where('id', $row['id']); // or whatever is the unique column name.