如何在不知道记录ID的情况下更新单个字段?我有用户的用户名,我不想通过查询来获取id来浪费资源。
注意:我知道我可以用updateAll()
来实现这个目标,但这样的接缝就像过度杀戮一样,但是有更好的方法吗?
我是否可以限制updateAll()
仅限搜索一条记录然后完成,因为我不希望它在只有一个可能的匹配时继续搜索。
答案 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'");