Codeigniter - 在同一查询上组合获取然后更新

时间:2017-03-13 09:08:00

标签: mysql codeigniter

我使用下面的代码来获取具有指定条件的记录,然后仅更新相同的记录。

$this->db->where('Parameter1', 'TRUE');
$query = $this->db->get('Messages');

$this->db->where('Parameter1', 'TRUE');
$this->db->set('Parameter1', 'FALSE');
$this->db->update('Messages');

这样可行,但使用where()命令调用两次相同的查询似乎浪费了服务器权限。是否可以使get()命令不重置查询或使用更新命令中的先前记录集?

1 个答案:

答案 0 :(得分:0)

我怀疑这是你真正需要担心占用太多资源的问题,而且你无法在实际的sql查询中重用where子句。但是如果你喜欢你可以重构以获得稍微清晰的代码。

$unread = array('Parameter1'=>TRUE);
$read = array('Parameter1'=> FALSE);

$query = $this->db->get_where('Messages', $unread); 

$this->db->update('Messages', $read, $unread);

注意: 在您的代码中,您将每个元素(其中Parameter1设置为true),然后将其中一个元素更改为false。这几乎肯定是不可取的,但也许这是你在实际应用中的其他地方处理的一个问题。