Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.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中更新数据库表_Php_Sql_Cakephp - Fatal编程技术网

如何在CakePHP中更新数据库表

如何在CakePHP中更新数据库表,php,sql,cakephp,Php,Sql,Cakephp,我正在尝试用CakePHP更新数据库中的表数据 查询: UPDATE status SET amount=5000 WHERE id=3 如何用CakePHP编写此查询?查看文档并查看(和数据库表) 在这种情况下,我认为您可以使用set()和save(): 或使用saveField()的较短版本: 它们之间的区别在于saveField()是一种原子更新,而多个set()调用在执行save()调用之前不会修改数据。$this->Status->id=3;也应该是启动更新的适当方式。@Anthon

我正在尝试用CakePHP更新数据库中的表数据

查询:

UPDATE status SET amount=5000 WHERE id=3

如何用CakePHP编写此查询?

查看文档并查看(和数据库表)

在这种情况下,我认为您可以使用
set()
save()

或使用
saveField()
的较短版本:


它们之间的区别在于
saveField()
是一种原子更新,而多个
set()
调用在执行
save()
调用之前不会修改数据。

$this->Status->id=3;也应该是启动更新的适当方式。@Anthony你说得对。事实上,我倾向于使用它而不是
read()
。我已经更新了答案,以反映这两种选择
$this->Status->read(null, 3);
$this->Status->set('amount', 5000);
$this->Status->save();
$this->Status->id = 3; // This avoids the query performed by read()
$this->Status->saveField('amount', 5000);