我正在尝试更新列的每个值。
我正在尝试对现有数据库应用加密
$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');
}
结果取第一行,对其进行加密,然后将其应用于所有行,而它假定考虑其自身值来分别更新每一行。我究竟做错了什么 ? 预先谢谢您!
答案 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.