CakePHP savefield()不知道记录';身份证
如何在不知道记录ID的情况下更新单个字段?我有用户的用户名,我不想为了获取id而进行查询而浪费资源 注意:我知道我可以通过CakePHP savefield()不知道记录';身份证,php,sql,cakephp,Php,Sql,Cakephp,如何在不知道记录ID的情况下更新单个字段?我有用户的用户名,我不想为了获取id而进行查询而浪费资源 注意:我知道我可以通过updateAll()实现这一点,但这就像过度杀戮一样,但有更好的方法吗 我能不能限制一下updateAll()只搜索一条记录然后完成,因为我不希望它在只有一条可能匹配的情况下继续搜索。updateAll()是这种情况下的方法 所有其他保存方法都需要知道ID 您还可以使用query()方法:$this->Model->query($sql) 但是,请记住,此方法不会自动转义值
updateAll()
实现这一点,但这就像过度杀戮一样,但有更好的方法吗
我能不能限制一下updateAll()
只搜索一条记录然后完成,因为我不希望它在只有一条可能匹配的情况下继续搜索。updateAll()
是这种情况下的方法
所有其他保存方法都需要知道ID
您还可以使用query()
方法:$this->Model->query($sql)
但是,请记住,此方法不会自动转义值 updateAll()
是这种情况下的解决方法
所有其他保存方法都需要知道ID
您还可以使用query()
方法:$this->Model->query($sql)
但是,请记住,此方法不会自动转义值 如果您使用的是Cake(或几乎任何其他框架),那么不必要的查询会牺牲一些效率。但是,您仍然可以运行自定义查询。例如,如果您知道用户名并试图更新first_name字段,则可以执行以下操作:
$this->User->query("UPDATE users SET first_name = '$new_firstname' WHERE username = '$username'");
如果您使用的是Cake(或几乎任何其他框架),那么您将牺牲一些不必要的查询的效率。但是,您仍然可以运行自定义查询。例如,如果您知道用户名并试图更新first_name字段,则可以执行以下操作:
$this->User->query("UPDATE users SET first_name = '$new_firstname' WHERE username = '$username'");
感谢您对
query()
未转义的提示。除非我注意到性能问题,否则我将坚持使用updateAll()
。updateAll()
是最好的选择,应该尽量避免使用query()
。感谢大家对query()
的提醒。除非我注意到性能问题,否则我将坚持使用updateAll()
。updateAll()
是最好的选择,应该尽量避免使用query()
。正是因为这种效率牺牲,我才试图使我的查询尽可能高效。谢谢你的意见!正是因为这种效率的牺牲,我才试图使我的查询尽可能高效。谢谢你的意见!