CakePHP savefield()不知道记录的id

时间:2011-04-30 17:54:26

标签: php sql cakephp

如何在不知道记录ID的情况下更新单个字段?我有用户的用户名,我不想通过查询来获取id来浪费资源。

注意:我知道我可以用updateAll()来实现这个目标,但这样的接缝就像过度杀戮一样,但是有更好的方法吗?

我是否可以限制updateAll()仅限搜索一条记录然后完成,因为我不希望它在只有一个可能的匹配时继续搜索。

2 个答案:

答案 0 :(得分:2)

updateAll()是这种情况下的方法。

所有其他保存方法都需要知道ID。

您还可以使用query()方法:$this->Model->query($sql)

但是,请记住,此方法不会自动转义值。

答案 1 :(得分:1)

如果你正在使用Cake(或几乎任何其他框架),那么你会因为不必要的查询而牺牲一些效率。但是,您仍然可以运行自定义查询。例如,如果您知道用户名并且正在尝试更新first_name字段,则可以执行以下操作:

$this->User->query("UPDATE users SET first_name = '$new_firstname' WHERE username = '$username'");