我试图通过在末尾添加'@live.com"来更新电子邮件列表表,因为有些用户忘记为他们的电子邮件地址添加这个后缀。例如,他们输入类似"imsuperman"的东西,而它应该是"imsuperman@live.com"。
我正在使用codeigniter,但被卡在以下代码:
$this->db->select('email, username');
$user=$this->db->get('user');
foreach ($user->result() as $row):
$to_username=$row->username;
//load email address
$to_email_raw=$row->email;
if(strpos($to_email_raw, '@') !==false)
{
$to_email=$to_email_raw;
}
else
{
$to_email=$to_email_raw.'@live.com';
}
endforeach;
到目前为止,我已经更改了每行的电子邮件地址。接下来我该如何更新表格,有什么建议吗?
谢谢,
如果这是数据库中的现有数据,您应该从相关行查询id并在更新函数中传递该id。
如果你想更新数据库中的一行,使用update函数
链接在你的控制器中:
$data = array('id' => $id, 'email' => $to_email);
在你的模型
function update_email() {
$this->db->where('id', $id);
$this->db->update('mytable', $data);
}
如果您试图同时更新数据库中的多行,请使用更新批处理函数
在你的控制器中,在foreach循环中:
$data[] = array('id' => $id, 'email' => $to_email);
在你的模型
function update_email_batch() {
$this->db->update_batch('mytable', $data, 'id');
}