Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP savefield()不知道记录';身份证_Php_Sql_Cakephp - Fatal编程技术网

CakePHP savefield()不知道记录';身份证

CakePHP savefield()不知道记录';身份证,php,sql,cakephp,Php,Sql,Cakephp,如何在不知道记录ID的情况下更新单个字段?我有用户的用户名,我不想为了获取id而进行查询而浪费资源 注意:我知道我可以通过updateAll()实现这一点,但这就像过度杀戮一样,但有更好的方法吗 我能不能限制一下updateAll()只搜索一条记录然后完成,因为我不希望它在只有一条可能匹配的情况下继续搜索。updateAll()是这种情况下的方法 所有其他保存方法都需要知道ID 您还可以使用query()方法:$this->Model->query($sql) 但是,请记住,此方法不会自动转义值

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

注意:我知道我可以通过
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()
。正是因为这种效率牺牲,我才试图使我的查询尽可能高效。谢谢你的意见!正是因为这种效率的牺牲,我才试图使我的查询尽可能高效。谢谢你的意见!