如何在cakephp中更新多行

时间:2015-06-17 11:09:26

标签: php cakephp cakephp-2.6

我有一张名为lists的表格。此列表一次填充多行。第一次表填充3行。之后,该表的任何更新可能是2行或6行。

我想相应地删除/更新。这意味着,如果下一次更新的行数少于当前行,则应删除其余行。或者如果下一行比当前行大,那么相应的行应该更新,其余的行添加自动增加的id。

我正在使用CakePHP 2.6.7。

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解你的问题,但也许你想要使用像Model::saveAll()这样的东西

$data = array(
    array('id' => 1, 'body' => 'Comment 1'),
    array('id' => 2, 'body' => 'Comment 2')
);
$this->Comment->saveAll($data);

这将执行以下命令:

UPDATE `blog`.`comments` SET `id` = 1, `body` = 'Comment 1' WHERE `blog`.`comments`.`id` = 1

UPDATE `blog`.`comments` SET `id` = 2, `body` = 'Comment 2' WHERE `blog`.`comments`.`id` = 2

要删除多条记录,请使用Model::delete()

$this->Comment->delete(array(1, 2), false);

这将执行以下SQL命令:

DELETE `Comment` FROM `blog`.`comments` AS `Comment` WHERE `Comment`.`id` IN (1, 2)`

详细了解Model::updateAll()Model::saveAll() here以及Model::delete()Model::deleteAll() here

我希望它会对你有所帮助。